所以我有一个如下所示的数据框:
Animal Food LikeScore
1 cat fish 98
2 cat milk 72
3 cat shrimp 88
4 dog steak 99
5 dog poo 55
我想生成一个数据框,将动物组合成一行,将他们喜欢的所有食物列表放在同一行的另一列中(无论得分如何):
Animal Food
1 cat fish, milk, shrimp
2 dog steak, poo
R中是否有可以执行此操作的功能? 谢谢!
答案 0 :(得分:2)
我喜欢使用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