繁体   English   中英

R按索引求和列

[英]R Sum columns by index

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

列具有所有不同的名称

我们可以在列的子集上使用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

包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]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM