对每行的某些列的单元格求和

时间:2012-11-20 21:32:06

标签: r rows

我想计算某些列的总和,然后对每一行应用此求和。不幸的是,我只能迈出第一步。我现在如何让每一行都成功?我知道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])

我现在如何为每一行做到这一点?

4 个答案:

答案 0 :(得分:43)

你可以这样做:

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

答案 1 :(得分:0)

如果您没有NA,可以申请

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

答案 2 :(得分:0)

如果您的表格包含非数字列,请务必将其排除在rowSum

答案 3 :(得分:0)

还可以使用dplyr的逐行运算来完成所有单独行的求和(col1, col2, col3定义了三个选定的列,并针对这些列计算了行总和):

library(tidyverse)

df <- df %>% 
    rowwise() %>% 
    mutate(rowsum = sum(c(col1, col2,col3)))