我有一个数据框,我想要对列(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,导致非数字参数错误。谢谢!
答案 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