R按索引求和列

时间:2016-04-30 16:49:21

标签: r

我需要找到一种方法来按列索引对列进行求和,我正在处理一个大的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

列具有所有不同的名称

2 个答案:

答案 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]])