【发布时间】:2017-03-19 14:01:27
【问题描述】:
假设我有以下数据框:
df<-data.frame(Name=c(rep("John",3),rep("Paul",2),rep("George",2),"Ringo"),
Instrument=c("Guitar","Piano","Drums","Piano","Bass","Guitar","Sitar","Drums"))
> df
Name Instrument
1 John Guitar
2 John Piano
3 John Drums
4 Paul Piano
5 Paul Bass
6 George Guitar
7 George Sitar
8 Ringo Drums
我想做的是按名称分组并拥有不同的乐器 连接成一个字符串,如:
Name Instruments
1 John Guitar,Piano,Drums
2 Paul Piano,Bass
3 George Guitar,Sitar
4 Ringo Drums
我认为使用 group_by 和 paste 应该可以解决问题:
library(dplyr)
df <- df %>%
group_by(Name) %>%
summarise(Instruments = paste(Instrument,sep=","))
但相反,我收到“期望单个值”错误。 group_by 是否仅适用于数字函数,如果是,有人知道是否有解决方法吗?
【问题讨论】: