22

我想计算某些列的总和,然后对每一行应用这个总和。不幸的是,我只能迈出第一步。我现在如何让它发生在每一行?我知道 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

3 回答 3

54

你可以这样做:

summed <- rowSums(zscore[, c(1, 2, 3, 5)])
于 2012-11-20T21:37:55.460 回答
1

所有单个行的求和也可以使用 dplyr 的逐行操作来完成(col1, col2, col3定义三个选定的列,为其计算逐行总和):

library(tidyverse)

df <- df %>% 
    rowwise() %>% 
    mutate(rowsum = sum(c(col1, col2,col3)))
于 2020-10-26T08:23:06.240 回答
0

如果你没有 NA 你可以申请这个

suma.zscore = (zscore$a + zscore$c + zscore$t + zscore$y)
于 2016-09-21T16:13:09.807 回答