【发布时间】:2021-07-21 08:10:36
【问题描述】:
我想计算 A1 到 E1 列的行平均分。
library(dplyr)
df <- data.frame(A1 = c(1, 2, NA, 4),
B1 = c(2, 4, NA, 9),
C1 = c(6, 12, NA, 6),
D1 = c(22, 7, NA, 1),
E1 = c(11, 40, NA, 7),
F1 = c(22, 7, NA, 1),
G1 = c(2, 4, NA, 9),
H1 = c(11, 40, NA, 10)
)
> df
A1 B1 C1 D1 E1 F1 G1 H1
1 1 2 6 22 11 22 2 11
2 2 4 12 7 40 7 4 40
3 NA NA NA NA NA NA NA NA
4 4 9 6 1 7 1 9 10
这是我目前的代码:
df <- df %>%
mutate(meanscores = rowMeans(subset(select = A1:E1)), na.rm = TRUE)
提前致谢!
【问题讨论】:
-
可能还有其他更多 dplyrier 方法可以做到这一点,但您只需在执行
subset时使用.引用数据,它就会起作用:@ 987654325@ - 并确保na.rm=TRUE作为参数传递给rowMeans而不是mutate -
我认为目前的首选方法是
df %>% mutate(rs = rowMeans(across(A1:E1), na.rm=TRUE)) -
这行得通,谢谢!