我有一个数据框:
a b c
1 1 40
1 2 50
2 1 45
2 2 55
如何按列折叠? 期望的输出:
a b c c.b1 c.b2
1 1 40 40 50
1 2 50 40 50
2 1 45 45 55
2 2 55 45 55
我想我可以以某种方式合并,但不断丢失数据并让NA从另一方出来
答案 0 :(得分:1)
也许:
dfrm$c.b1 <- ave(dfrm$c, dfrm$a, FUN=function(x) x[1])
# returns [1] 40 40 45 45
dfrm$c.b2 <- ave(dfrm$c, dfrm$a, FUN=function(x) x[2])
# returns [1] 50 50 55 55
请注意,索引因子是获取结果的“a”列(而不是与标签一致)。如果事实证明您有一个更复杂的问题,那么应该修改您的数据示例以说明真正的问题可能是什么。