r - 如果表的长度不同,如何对几个表中的列的值求和?

标签 r

好的,这应该很容易,但是我正在寻找一种尽可能快的解决方案。

假设我有3个表(表的数量会大很多):

tab1 <- table(c(1, 1, 1, 2, 2, 3, 3, 3))
tab2 <- table(c(1, 1, 4, 4, 4))
tab3 <- table(c(1, 1, 2, 3, 5))

这是我们得到的:
> tab1
1 2 3 
3 2 3 
> tab2
1 4 
2 3 
> tab3
1 2 3 5 
2 1 1 1 

我想以一种快速的方式来使它与许多大表一起工作的是这样的:
1 2 3 4 5
7 3 4 3 1

因此,基本上,表是在所有names上聚合的。有没有我缺少的基本功能?谢谢你的帮助!

最佳答案

我们将c输出连接起来(tab)以创建“v1”,使用tapply获取由该对象的sum分组的元素的names

v1 <- c(tab1, tab2, tab3)
tapply(v1, names(v1), FUN=sum)
#1 2 3 4 5 
#7 3 4 3 1 

关于r - 如果表的长度不同,如何对几个表中的列的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892120/

相关文章:

r - 自定义 R 查找共享对象的位置?

c++ - 创建链接到 Rust dylib 的共享 C 对象以在 R 中使用

r - 从 Rprof() 获取更多信息

r - 提供参数的惰性求值

从列表vs.data.table.hash快速查找单个项目

r - 如何使用循环调用列名:

regex - 使全局环境中的对象列表与某些字符串模式匹配

删除每一列,但其中一些列在 data.table 中

r - ggplot - 带有多个箭头的 geom_segment()

r - 基于 "sessionID"和 "userID"的差异创建 "timeStamp"