@thelatemailが指摘するように、すべての値のベクトルではなく、単一の値を返す必要があります。ここではそれを行う方法の例を示します。
dots = lapply(paste0("col", 1:19), as.symbol)
mydf %>%
group_by_(.dots=dots) %>%
summarise(alltasks = paste(col20, collapse=", "))
summarise
ラインへの変更は、単一の文字列にまとめcol20
からすべての値を貼り付ける方法です。コンマ区切り記号を使用しましたが、好きなものに変更することはもちろん可能です。 dots
ビジネスは、それぞれを入力せずにすべてのグループ化変数を組み合わせるほうが簡単です。
mydf
の名前は、あなたがそれらを生成するために、単純なpaste
機能を使用できるように、定期的にされていない場合、他のオプションは、たとえば、次のようになります。
dots = lapply(names(mydf)[1:19], as.symbol)
または
dots = lapply(names(mydf)[-grep("col20$", names(mydf))], as.symbol)
ここです組み込みのmtcars
データフレームを使用するdplyr
コードの実例:
dots = lapply(c("am","vs","cyl","carb"), as.symbol)
mtcars %>%
group_by_(.dots=dots) %>%
summarise(all_mpg = paste(mpg, collapse=", "))
am vs cyl carb all_mpg
1 0 0 8 2 18.7, 15.5, 15.2, 19.2
2 0 0 8 3 16.4, 17.3, 15.2
3 0 0 8 4 14.3, 10.4, 10.4, 14.7, 13.3
4 0 1 4 1 21.5
5 0 1 4 2 24.4, 22.8
6 0 1 6 1 21.4, 18.1
7 0 1 6 4 19.2, 17.8
8 1 0 4 2 26
9 1 0 6 4 21, 21
10 1 0 6 6 19.7
11 1 0 8 4 15.8
12 1 0 8 8 15
13 1 1 4 1 22.8, 32.4, 33.9, 27.3
14 1 1 4 2 30.4, 30.4, 21.4
'C'は、ちょうど 'summarise'が必要のような単一の合計値ではないれ、各グループ内のすべての値を返します。おそらく 'summary(alltasks = toString(col20))' – thelatemail
'paste'か' toString'を試してみてください。 –