我试图按一定的标准将2行数据合并或汇总成1行

时间:2018-03-13 18:41:09

标签: r dplyr aggregate tidyr

我正在尝试将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

在几个小时内完成它似乎无法解决这个问题。

由于

1 个答案:

答案 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