5

同じ分で2つのグループを返すデータフレームがあります。期待される出力に到達するためにどのように処理できますか?

df<- read.table(header=TRUE,
                 text="
                 Company  xxx  yyyy  zzzz  cnt
                 abc       1     1    1     20
                 aaa       1     1    2     3
                 bbb       1     1    1     3
                 ddd       2     0    2     100
                 ")

以下のコードを試しました

final= df %>%
       group_by(xxx,yyyy) %>%
         summarise(Topcomp=Company[c(which(min(cnt)==cnt))])

私は得ています:

エラー: 単一の値が必要です

以下のように出力したい。

    xxx  yyyy Topcomp
  <int> <int>  <fctr>
1     1     1    aaa,bbb
2     2     0     ddd
4

2 に答える 2

5

あなたが使用することができますpaste(..., collapse = ",")

df %>%
  group_by(xxx,yyyy) %>%
  summarise(Topcomp = paste(Company[min(cnt) == cnt], collapse = ","))
于 2016-09-14T20:48:10.217 に答える