根据一列删除重复项,并将一定值合并到一列中

时间:2016-01-12 02:42:03

标签: r duplicates

我是R的初学者。我有这样的数据, data1

我希望得到这样的数据: data2

我找到了删除重复项的人的示例,并将一些数据合并为列表。但大多数示例仅包含2列。

希望有人能帮助我

1 个答案:

答案 0 :(得分:1)

这可以使用group by operations来完成。我们按公共列和paste对感兴趣的列中的元素进行分组。在示例中,它是“X”。可以使用data.tabledplyraggregate(来自基地R)等进行汇总分组。

使用data.table,我们将'data.frame'转换为'data.table'(setDT(df1)),按多列分组(此处我使用names指定多列) ,和paste“X”列元素。

library(data.table)
setDT(df1)[, list(X= toString(X)), c(names(df1)[c(1:7,9)])]

或使用与dplyr相同的方法。

library(dplyr) 
df1 %>%
   group_by_(.dots= names(df1)[c(1:7,9)]) %>%
   summarise(X= toString(X))