排除R的rowsum

时间:2014-03-18 18:50:23

标签: r rowsum

我正在排除R的行和功能。我有以下向量名为total:

 1   3
 1   45
 ..  ..
 20  45
 20  46

向量有20个不同的类别,我想总结每个类别的所有值。我的代码是:

 rowsum(total[,c(1:20)], group = c(1:20))

但是我收到以下错误:

 Error in rowsum.default(total[, c(1:2)], group = c(1:20))   incorrect length for 'group'

我有点困惑,因为在文档中,“group”是一个向量/因子,给每组x分配一个元素。

任何帮助都将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:2)

第二个参数需要是第一个参数的组成员资格。

dat <- data.frame(
  value = runif(100),
  group = sample(1:20, 100, replace = T)
)

rowsum(dat$value, dat$group)

答案 1 :(得分:0)

如果您希望将数据分组并在各个组中执行相同的计算,也可以使用tapply。您可以查看http://www.r-bloggers.com/r-function-of-the-day-tapply/以获取更多信息。