我需要找到一种方法来按列索引对列进行求和,我正在处理一个大的read.csv
文件,我将在这里展示问题的一个示例;我希望例如从第2到第5和从第6到第7h总结以下矩阵:
a 1 3 3 4 5 6
b 2 1 4 3 4 1
c 1 3 2 1 1 5
d 2 2 4 3 1 3
结果必须是这样的:
a 11 11
b 10 5
c 7 6
d 8 4
列具有所有不同的名称
答案 0 :(得分:3)
我们可以在列的子集上使用rowSums
,即分别为2:5和6:7,然后使用输出创建一个新的data.frame
。
data.frame(df1[1], Sum1=rowSums(df1[2:5]), Sum2=rowSums(df1[6:7]))
# id Sum1 Sum2
#1 a 11 11
#2 b 10 5
#3 c 7 6
#4 d 11 4
答案 1 :(得分:2)
包dplyr具有完全为此目的而制作的功能:
require(dplyr)
df1 = data.frame(a=c(1,2,3,4,3,3),b=c(1,2,3,2,1,2),c=c(1,2,3,21,2,3))
df2 = df1 %>% transmute(sum1 = a+b , sum2 = b+c)
df2 = df1 %>% transmute(sum1 = .[[1]]+.[[2]], sum2 = .[[2]]+.[[3]])