在R中将相同的字符组合成一行

在R中将相同的字符组合成一行,r,merge,similarity,R,Merge,Similarity,我有一个数据框,看起来像这样: Animal Food LikeScore 1 cat fish 98 2 cat milk 72 3 cat shrimp 88 4 dog steak 99 5 dog poo 55 我想生成一个数据框,将动物组合成一行,并将它们喜欢的所有食物的列表放在同一行的另一列中(不管分数): R中是否有一个函数可以做到这一点? 谢

我有一个数据框,看起来像这样:

   Animal    Food   LikeScore   
1   cat      fish      98
2   cat      milk      72
3   cat     shrimp     88
4   dog     steak      99
5   dog      poo       55
我想生成一个数据框,将动物组合成一行,并将它们喜欢的所有食物的列表放在同一行的另一列中(不管分数):

R中是否有一个函数可以做到这一点?
谢谢

我喜欢使用
plyr
来:

library(plyr)
ddply(df, .(Animal), summarize, Food = paste(Food, collapse = ', '))
请注意,代码未经测试,因为您的示例不可复制。但是,使用
mtcars
的示例表明,它是有效的:

ddply(mtcars, .(gear), summarize, carb = paste(carb, collapse = ', '))
  gear                                        carb
1    3 1, 2, 1, 4, 3, 3, 3, 4, 4, 4, 1, 2, 2, 4, 2
2    4          4, 4, 1, 2, 2, 4, 4, 1, 2, 1, 1, 2
3    5                               2, 2, 4, 6, 8

查看类似于
aggregate(Food~Animal,DF,paste,sep=“,”)
。虽然我认为您需要
collapse=”,“
而不是
sep=”,“
ddply(mtcars, .(gear), summarize, carb = paste(carb, collapse = ', '))
  gear                                        carb
1    3 1, 2, 1, 4, 3, 3, 3, 4, 4, 4, 1, 2, 2, 4, 2
2    4          4, 4, 1, 2, 2, 4, 4, 1, 2, 1, 1, 2
3    5                               2, 2, 4, 6, 8