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 列组合在一个单元格中的结果。当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

看起来您的分组已关闭....至少就我可以解析您的意图而言。无论如何,最后的英文句子对我来说没有多大意义,因为“add after”这个短语不清楚。

于 2013-06-09T23:45:57.430 回答