对行之间的特定列求和

时间:2014-06-03 20:27:40

标签: r sum

我需要对每两列进行求和 例如

x1  x2  x3  x4
12  2   3   7
1   4   6   5

我需要

X1     X2
14     10
5      11

我尝试过应用功能 我试过这个功能 mat是一个矩阵

mat1=matrix()

for(i in 1:nrow(mat)){
for(j in 1:ncol(mat)){
mat1[i,j]=mat[j,i]+mat[j,i+1]
}}

3 个答案:

答案 0 :(得分:8)

此问题的一般化(对于data.frame)可能类似于:

sapply(split.default(mydf, 0:(length(mydf)-1) %/% 2), rowSums)
#       0  1
# [1,] 14 10
# [2,]  5 11

%/% 2中的“2”替换为您想要“聚合”的列数。

答案 1 :(得分:2)

例如:

 mat[,c(TRUE,FALSE)]+mat[,c(FALSE,TRUE)]

  x1 x3
1 14 10
2  5 11

答案 2 :(得分:1)

id <- 1:ncol(mat)
mat[ , id[id%%2!=0] ] + mat[ , id[id%%2==0] ]
     x1 x3
[1,] 14 10
[2,]  5 11