我需要对每两列进行求和 例如
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]
}}
答案 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