r - 取三个包含 NA 的变量的平均值,以使用 dplyr 创建新变量
问题描述
我的数据集中有三个度量值,我试图将它们组合成一个新变量,该变量代表每一行的这三个变量的平均值(每行代表一个参与者)。原始三个变量中的每一个都包含 NA 值。
我已经尝试了下面的代码,我在此处将其应用于 R 中包含 NA 值(空气质量)的示例数据集:
airquality %>% mutate(New = mean(airquality$Solar.R,airquality$Ozone,airquality$Wind))
但我不断收到错误消息:
mean.default(airquality$Solar.R, airquality$Ozone, airquality$Wind) 中的错误:“trim”必须是长度为 1 的数字此外:警告消息:在 if (na.rm) x <- x[!is .na(x)] : 条件长度 > 1 并且只使用第一个元素
我也试过:
airquality %>% filter(!is.na(airquality$Solar.R,airquality$Ozone,airquality$Wind)) %>% mutate(New = mean(airquality$Solar.R,airquality$Ozone,airquality$Wind))
但这给了我同样的错误。
谁能建议如何解决这个问题?
提前非常感谢!
解决方案
您可以使用row_mean_
from hablar,它在忽略缺失的情况下按行表示。
library(hablar)
airquality %>%
mutate(New = row_mean_(Solar.R, Ozone, Wind))
结果
Ozone Solar.R Wind Temp Month Day New
1 41 190 7.4 67 5 1 79.466667
2 36 118 8.0 72 5 2 54.000000
3 12 149 12.6 74 5 3 57.866667
4 18 313 11.5 62 5 4 114.166667
5 NA NA 14.3 56 5 5 14.300000
6 28 NA 14.9 66 5 6 21.450000
7 23 299 8.6 65 5 7 110.200000
推荐阅读
- sql - 如何从具有大行的表中选择数据,其中列如 column1%column2
- javascript - 避免用户多次点击提交按钮?
- autohotkey - ctrl+s 未在 autohotkey 脚本中发送
- ios - Swift 5 尝试接受和解析 Firebase 动态链接和深度链接 - 出现错误,并且从不执行我的代码 - 软件导致连接中止
- postgresql - 在 PostgreSQL 中,散列子计划是什么意思?
- bash - cd 遇到问题并返回目录
- javascript - 如何延迟代码直到窗口调整大小结束
- azure - 在 arm 模板中配置自定义自动修复规则(有没有办法添加具有多种操作类型的多个触发条件?)
- vb.net - 如何在 vb.net 中的同一文件上保持写入信息?
- python - 使用 Beatifulsoup 进行抓取之前等待