2012-11-20 24 views
14

我想计算某些列的总和,然后对每一行应用此总和。 不幸的是,我只能迈出第一步。我现在如何让每一行都发生? 我知道R不需要循环,但是什么才是正确的方法?每行某些列的总和单元格

我的矩阵(zscore)看起来是这样的:

a b c t y 
1 3 4 7 7 4 

2 4 56 6 6 4 

3 3 3 2 1 7 

4 3 88 9 9 9 

现在,我要计算行之和为每一行的基础上,一些柱的侧向承载力。对于一行,它可能看起来像这样:

f1 <- sum(zscore[1,1:2], zscore[1,3], zscore[1,5]) 

现在我该如何做每行?

回答

33

你可以做这样的事情:

summed <- rowSums(zscore[, c(1, 2, 3, 5)]) 
+0

真棒,我在此期间做了一个循环,但你的解决方案是更干净! – user1807857

+0

这是R :)的功能:) – alestanis

0

如果你没有NA可以应用此

suma.zscore = (zscore$a + zscore$c + zscore$t + zscore$y) 
+0

取决于数据帧或矩阵,可能需要as.numeric才能使添加工作,例如:suma.zscore =(as.numeric(zscore $ a)+ as.numeric(zscore $ c)...等) –

0

如果你的表中有非数字列,请确保您排除它们在rowSum