我正在尝试将2行合并为1行,并根据不同的列选择要保留的值。
ID score date std error
123 87 1/15/2018 5
123 92 1/15/2018 10
155 78 3/10/2018 8
155 82 1/15/2018 7
在数据集中,我只需要每个ID 1行。当有两个不同的测试分数时,我想保持分数值与最接近当前的相应测试日期。如果日期相同,那么我想以最小的标准误差取得测试分数。
最终结果如下:
ID score test date std error
123 87 1/15/2018 5
155 78 3/10/2018 8
在几个小时内完成它似乎无法解决这个问题。
由于
答案 0 :(得分:2)
arrange
按 date (降序)和 std错误(升序)然后从每个组中获取第一行:
df %>%
arrange(desc(as.Date(date, '%m/%d/%Y')), std.error) %>%
group_by(ID) %>% slice(1)
# A tibble: 2 x 4
# Groups: ID [2]
# ID score date std.error
# <int> <int> <fct> <int>
#1 123 87 1/15/2018 5
#2 155 78 3/10/2018 8