如何按名称选择列的子集来计算 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 %&gt;% mutate(rs = rowMeans(across(A1:E1), na.rm=TRUE)) 这行得通,谢谢! 【参考方案1】:

这是使用基础 R 的解决方案。

mean_result <- rowMeans(df[,1:5], na.rm = TRUE)

【讨论】:

以上是关于如何按名称选择列的子集来计算 R 中的行均值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Scala计算Spark中数据框中列的开始索引和结束索引之间的行的平均值?

7.1 计算平均值

7.01 计算平均值

如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等

在计算 Pandas 创建的数据框中的列的平均值时指定“跳过 NA”

在access里用一个列显示其他列的平均值