dplyrでgroup_byしてグループ内でテキストにpaste的な事をする。

常識かもしれないのだけど、知らなかったので。

dplyrでgroup_byした後に、グループの中でテキストをくっつけた変数をつくりたい時があります。

そんな時にはtoStringを使うっぽいです。(※これ間違ってました。最後に追記あります。)

P1090935

1. 試すためのデータフレームを作ります。

> data <- data.frame(aa = c(“a”,”b”,”c”,”a”), bb = c(“aaa”,”aaa”,”aba”,”ccc”))

2. aaをgroup_byして、bbをくっつけます。

> data %>% group_by(aa) %>% summarize(sumtxt = toString(bb))

3. 結果を出してみます。

1行目と4行のaaが同一なので、bbの部分が横にくっついた形になっています。

Source: local data frame [3 x 2]

aa sumtxt
1 a aaa, ccc
2 b aaa
3 c aba

 

これだけです。おしまい。

他にやり方あるんですかね?

ありましたw

@kos59125さんと@yutannihilationさんに突っ込みをもらいました。

data %>% group_by(aa) %>% summarise(sumtxt = paste0(bb, collapse = “,”))

で同じことができました。ちなみにsummarizeのほうでは何故かできなかったです。

修正遅くて申し訳ないです。そして寿司・・・

カテゴリー: 未分類   パーマリンク


コメントを残す