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