我有一个包含列的数据集:id
,names
。可以有一个id
但多个names
,因此我有时会重复id-rows
:
id names
id1 name1
id1 name2
id1 name3
id2 name4
id2 name5
我需要在data.frame
重构这样的R
,以便所有行都有唯一的ids
,如果有多个names
,则所有行都应该被写入以逗号分隔的值进入names
列,如下所示:
id names
id1 name1, name2, name3
id2 name4, name5
我试过了grouped <- table %>% group_by(names)
,但它没有用。
我怎样才能在R中实现这一目标?
答案 0 :(得分:3)
使用data.table
:
df <- read.table(header=T, text="id names
id1 name1
id1 name2
id1 name3
id2 name4
id2 name5")
library(data.table)
setDT(df)
df[, names := as.character(names)]
df[, names := paste0(names, collapse = ", "), by = id]
df <- unique(df)
输出:
df
id names
1: id1 name1, name2, name3
2: id2 name4, name5