我试图寻找到这表示在公司一个人的职业生涯历史上的一个大的数据集。 我希望看到的岁的人担任的最大数量Manager
的条件,此人是在一个下Sales
之前成为一个类别Boss
(无论多少年之前,这是)。 数据如下所示: job2
是一个虚拟变量,说明此人是否是一个Manager
, cumu_job2
表示累计岁的人是在Manager
位置(仅顺序累计被认为是)。
id name year job job2 cumu_job2
1 Jane 1980 Worker 0 0
1 Jane 1981 Manager 1 1
1 Jane 1982 Sales 0 0
1 Jane 1983 Sales 0 0
1 Jane 1984 Manager 1 1
1 Jane 1985 Manager 1 2
1 Jane 1986 Boss 0 0
2 Bob 1985 Worker 0 0
2 Bob 1986 Sales 0 0
2 Bob 1987 Manager 1 1
2 Bob 1988 Manager 1 2
2 Bob 1989 Boss 0 0
通过提取最大岁的人工作,但条件是该人曾在工作的历史Sales
我希望的数据有一个表示该信息的另一列:
id name year job job2 cumu_job2 cumu_max
1 Jane 1983 Sales 0 0
1 Jane 1986 Boss 0 2
2 Bob 1986 Sales 0 0
2 Bob 1989 Boss 0 2
所以,我认为,这需要两个步骤-我第一次只需要解压的情况下从人的举动Sales
给Boss
,然后存储最大值为每个人在新的向量cumu_max
基于cumu_job2
。
这是一个复杂的过程,所以任何建议将非常感谢...!
我也考虑过为什么下面使用应答dplyr
不工作,这里就是我的想法-这一例子表明,所有的人只能成为经理后成为老板,但我也有,看起来像数据点Kevin
:
id name year job job2 cumu_job2
1 Jane 1980 Worker 0 0
1 Jane 1981 Manager 1 1
1 Jane 1982 Sales 0 0
1 Jane 1983 Sales 0 0
1 Jane 1984 Manager 1 1
1 Jane 1985 Manager 1 2
1 Jane 1986 Boss 0 0
2 Bob 1985 Worker 0 0
2 Bob 1986 Sales 0 0
2 Bob 1987 Manager 1 1
2 Bob 1988 Manager 1 2
2 Bob 1989 Boss 0 0
3 Kevin 1991 Manager 1 1
3 Kevin 1992 Manager 1 2
3 Kevin 1993 Sales 0 0
4 Kevin 1994 Boss 0 0
所以,最后,我想
id name year job cumu_job2 cumu_max
1 Jane 1983 Sales 0 0
1 Jane 1986 Boss 0 2
2 Bob 1986 Sales 0 0
2 Bob 1989 Boss 0 2
3 Kevin 1993 Sales 0 2
3 Kevin 1994 Boss 0 2
该dplyr解决方案只吐出了谁从销售去了的人 - 经理 - 老板不考虑经理的可能性 - 销售 - 老板(这是比较观察到我的数据集)。