如何按名称选择列的子集来计算 R 中的行均值? [复制]
Posted
技术标签:
【中文标题】如何按名称选择列的子集来计算 R 中的行均值? [复制]【英文标题】:How to select a subset of columns by name to compute row means in R? [duplicate] 【发布时间】: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))
这行得通,谢谢!
【参考方案1】:
这是使用基础 R 的解决方案。
mean_result <- rowMeans(df[,1:5], na.rm = TRUE)
【讨论】:
以上是关于如何按名称选择列的子集来计算 R 中的行均值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Scala计算Spark中数据框中列的开始索引和结束索引之间的行的平均值?
如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等