我在数据集中有三种度量,我试图将它们合并为一个新变量,该变量依次代表每行这三个变量的平均值(每行代表一个参与者)。最初的三个变量每个都包含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的数字 另外:警告消息:如果(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))
但这给了我同样的错误。
有人可以建议如何解决此问题吗?
非常感谢!
答案 0 :(得分:1)
您可以使用hablar中的row_mean_
,它会逐行显示,而忽略丢失。
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