有没有一种简单的方法可以在R的两个大表中添加每个类别的计数?
...其中表的值并不完全相同(尽管它们大部分会重叠):
我正在尝试做的小例子。设置一些数据:
x1 <- c(5, 3, 3, 6, 3, 3, 5, 5, 11, 2, 4, 9, 3, 5, 8, 2, 8, 5, 4, 8)
x2 <- c(6, 10, 9, 17, 6, 7, 8, 11, 5, 12, 14, 5, 11, 7, 7)
table(x1)
x1
2 3 4 5 6 8 9 11
2 5 2 5 1 3 1 1
table(x2)
x2
5 6 7 8 9 10 11 12 14 17
2 2 3 1 1 1 2 1 1 1
现在我想将这些表组合起来,就像我已经完成一样table(c(x1,x2))
,得到:
2 3 4 5 6 7 8 9 10 11 12 14 17
2 5 2 7 3 3 4 2 1 3 1 1 1
但是现在想象 x1 和 x2 已经消失了(而且真的很大,所以我真的不想
从表中重新创建它们并实际上这样做table(c(x1,x2))
),我想要的只是获取表t1
并t2
添加它们(通常非常大)的计数。 ..我可以用几种非常笨重的方式来做到这一点。
但是,这似乎应该是非常常见且非常容易解决的问题(实际上,我认为这t1 + t2
应该适用于具有相同类型类别的表)但是搜索我能想到的每个搜索词的问题并没有找到任何东西。
我错过了一个非常简单明了的方法吗?
编辑:
为了澄清,这样的事情(我做了)对于必须是非常常见的表操作来说并不是“简单而明显”的:
m <- merge(t1,t2,by.x="x1",by.y="x2",all=TRUE)
m[is.na(m)] <- 0
oo <- order(m$x1)
t12 <- m[oo,2]+m[oo,3]
names(t12) <- m[oo,1]
特别是,这实际上并不比蛮力方法更简单也更容易遵循。