我有以下数据
>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
怎么做?谢谢!
答案 0 :(得分: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
看起来您的分组已关闭....至少就我可以解析您的意图而言。最后英语句子对我来说没有多大意义,因为“后添加”一词不清楚。