这是我的数据:
> PayInstance EMPLID DEPTID JOBCODE PAY_FREQUENCY MAX._TTL.GROSS
> 1 1 23231606 100880 W 1203
> 2 1 23231606 100880 W 597
> 3 1 23231606 100880 W 625
> 4 1 23231606 100880 W 245
> 5 1 23231606 100880 W 480
> 6 1 23231606 100880 W 758
> 7 1 23231606 100880 W 599
> 1 2 23231606 100880 W 551
> 2 2 23231606 100880 W 767
> 3 2 23231606 100880 W 880
> 3 2 23231606 100880 W 557
> 4 2 20441606 100880 W 909
以下是我想做的事情:
> PayInstance EMPLID DEPTID JOBCODE PAY_FREQUENCY MAX._TTL.GROSS
> 1 1 23231606 100880 W 1203
> 2 1 23231606 100880 W 597
> 3 1 23231606 100880 W 625
> 4 1 23231606 100880 W 245
> 5 1 23231606 100880 W 480
> 6 1 23231606 100880 W 758
> 1 2 23231606 100880 W 551
> 2 2 23231606 100880 W 767
> 3 2 23231606 100880 W 880
> 3 2 23231606 100880 W 557
这是我的开始,但我假设我需要为此编写自己的功能,希望有人可以提供帮助,因为我确定我不是
df %>%
group_by(EMPLID) %>%
答案 0 :(得分:0)
除了评论中完全有效的答案之外,还有使用dplyr
和data.table
## Data table
setDT(df)
df[, obs := 1:.N]
df[df[, max(obs) != obs, by = EMPLID]$V1, ]
## Dplyr
df$obs <- 1:nrow(df)
df %>% group_by(EMPLID) %>% filter(max(obs) != obs)