0

次のデータがあります

>Data <- data.frame(
X = c(22,22,22,22,22,33,33,33,33),
Y = c(123,234,567,678,433,555,664,77,88),
Z = c(2,2,2,1,2,2,1,1,1)
)

>Data
#    X     Y      Z
#   22    123    2
#   22    234    2
#   22    567    2
#   22    678    1
#   33    433    2
#   33    555    2
#   33    664    1
#   33    77     1
#   33    88     1

X が同じ場合、Y 列を 1 つのセルに結合した結果を取得したいと考えています。Z = 2 の場合、Y は YY の前にあり、z = 1 の場合、Y は後に追加されます。

結果はこのようになります

>result
#   XX           YY                
#   22    123  234  567 678            
#   33    433  555  664 77  88            

どうやってするか?ありがとうございました!

4

1 に答える 1

1
setNames( aggregate(Data$Y,Data['X'], paste, collapse="  "), c("XX","YY"))
  XX                      YY
1 22 123  234  567  678  433
2 33        555  664  77  88

あなたのグループ化が外れていたようです....少なくとも私があなたの意図を解析できる限り。「あとに追加」というフレーズが不明確だったので、最後の英文はとにかく私にはあまり意味がありませんでした。

于 2013-06-09T23:45:57.430 に答える