小编Ann*_*nna的帖子

在 R 中,对于每个重复的 ID-时间组合,如何保留特定列中的最高值?

我有一个包含工资记录的 df 。对于每个重复的 PersonID-CalendarYear 组合,我想保留 WagesQ1:WagesQ4 列中的最高值。我还希望这些值都位于同一行。

例如,PersonID #49 有 3 行代表 2017 年。我想保留每个工资列中的最高值,这样我最终会得到 1 行代表 PersonID #49 和 2017 年。

我拥有的: 在此输入图像描述

我想要的是: 在此输入图像描述

到目前为止,我尝试了以下操作,但这会将每个 PersonID-CalendarYear 组合重复 4 次,这根本不是我想要的。

    test <- Emp %>% 
              group_by(PersonID, CalendarYear) %>%
              slice(which.max(WagesQ1), 
              which.max(WagesQ2), 
              which.max(WagesQ3), 
              which.max(WagesQ4))


      
Run Code Online (Sandbox Code Playgroud)

我在这里分享 df 的前 50 行:

structure(list(PersonID = c("30", "30", "30", "30", "30", "30", 
"30", "30", "30", "30", "30", "30", "30", "30", "30", "30", "30", 
"30", "30", "30", "30", "30", "36", "49", "49", "49", "49", "49", 
"49", "49", "49", "49", "49", "49", …
Run Code Online (Sandbox Code Playgroud)

r economics dplyr data-cleaning

2
推荐指数
1
解决办法
60
查看次数

标签 统计

data-cleaning ×1

dplyr ×1

economics ×1

r ×1