R:多列子集的总和

时间:2014-03-30 00:01:32

标签: r

我有一个数据框,我想要对列(1,2),列(3,4)等进行求和。

    x1  x2  x3  x4  x5  x6  x7  x8  
1   10  10  10  20  10  30  10  40  
2   20  10  20  20  20  30  20  40  

我希望得到一个数据框:

    x1  x2  x3  x4 
1   20  30  40  50  
2   30  40  50  60

一般来说,我有一系列列索引

colSubset1 <- c(seq(from=1, to=totalcols, by=5))
colSubset2 <- c(seq(from=2, to=totalcols, by=5))

想要做类似

的事情
newdf <- df[colSubset1] + df[colSubset2]

上面的结果是“二进制运算符错误的非数字参数”(我猜是因为列名不同?)。

编辑:

newdf <- df[colSubset1] + df[colSubset2]

这很好用。我忘了在读取我的数据文件时设置header = true,导致非数字参数错误。谢谢!

1 个答案:

答案 0 :(得分:3)

您可以利用短矢量的回收来选择列,并直接添加。如果data.frame被命名为df,则:

df[c(TRUE,FALSE)] + df[c(FALSE,TRUE)]
#   x1 x3 x5 x7
# 1 20 30 40 50
# 2 30 40 50 60