根据分组变量将值粘贴在一起

时间:2015-04-14 22:24:14

标签: r dataframe

我是R编程的新手,我正在尝试重新排列数据框。基本上我有一个带有ID的列和一个带有y字符串值的列。每个ID超过一​​个y,因此具有相同ID但不同y的多行。我希望每个ID只获得一行,并且所有y值在另一列的同一单元格中连接。有没有这样做的功能?

original data

ID  y
A   apple
B   pear
C   grape
A   grape
B   apple
C   grape

transformed data  

ID   y  
A    apple,grape  
B    pear, apple  
C    grape

1 个答案:

答案 0 :(得分:4)

您可以在此处使用aggregate() paste() unique()ID元素

aggregate(y ~ ID, unique(dat), paste, collapse = ", ")

数据

dat <- read.table(text="ID  y
A   apple
B   pear
C   grape
A   grape
B   apple
C   grape", header=T)

编辑添加collapse参数重新@pdb评论并更改unique重新@DavidArenburg