我在包dplyr的group_by中的汇总函数有问题。
这是数据框的样子:
df <- read.table(text="id groups times strings
1 1 a 1 xxx
2 2 a 2 zzz
3 3 a 1 yyy
4 4 b 1 xxx
5 5 b 1 yyy
6 6 b 1 xxx
7 7 c 3 yyy
8 8 c 1 xxx
9 9 c 1 xxx
10 10 c 1 yyy", stringsAsFactors=FALSE)
我需要group_by变量&#34; groups&#34;获取如下所示的数据框:
view(group.df)
id2 groups2 c.string
1 1 a 'xxx','zzz','zzz','yyy'
2 2 b 'xxx','yyy','xxx'
3 3 c 'yyy','yyy','yyy','xxx','xxx','yyy'
str(group.df)
'data.frame': 3 obs. of 3 variables:
$ id2 : int 1 2 3
$ groups2 : chr "a" "b" "c"
$ c.string: chr "'xxx','zzz','zzz','yyy'" "'xxx','yyy','xxx'"
"'yyy','yyy','yyy','xxx','xxx','yyy'"
我的问题是我不知道如何编码嵌套在group_by中的汇总函数来乘以字符串变量&#34; df $ strings&#34;通过&#34; df $ times&#34;的值,仅当&#34; df $ times&#34;是> 1。
感谢您的帮助。
答案 0 :(得分:0)
好像你只是忽略了id列,所以这应该可以工作
df %>%
group_by(groups) %>%
summarize(c.string=paste(sQuote(rep(strings, times)), collapse=","))
# groups c.string
# <chr> <chr>
# 1 a ‘xxx’,‘zzz’,‘zzz’,‘yyy’
# 2 b ‘xxx’,‘yyy’,‘xxx’
# 3 c ‘yyy’,‘yyy’,‘yyy’,‘xxx’,‘xxx’,‘yyy’