取包含NAs的三个变量的平均值,使用dplyr创建新变量
我的数据集中有三个度量值,我试图将它们组合成一个新变量,依次代表每一行这三个变量的平均值(每一行代表一个参与者)。原始三个变量中的每一个都包含NA值 我尝试了下面的代码,我在这里将其应用于R中包含NA值(空气质量)的样本数据集: 但我一直收到错误信息: 平均默认值错误(空气质量$Solar.R,空气质量$Ozone, 空气质量$风):“修剪”必须是长度为1英寸的数字 添加:警告消息:在if(na.rm)x 1中,仅使用第一个元素 我也尝试过:取包含NAs的三个变量的平均值,使用dplyr创建新变量,r,dplyr,R,Dplyr,我的数据集中有三个度量值,我试图将它们组合成一个新变量,依次代表每一行这三个变量的平均值(每一行代表一个参与者)。原始三个变量中的每一个都包含NA值 我尝试了下面的代码,我在这里将其应用于R中包含NA值(空气质量)的样本数据集: 但我一直收到错误信息: 平均默认值错误(空气质量$Solar.R,空气质量$Ozone, 空气质量$风):“修剪”必须是长度为1英寸的数字 添加:警告消息:在if(na.rm)x 1中,仅使用第一个元素 我也尝试过: airquality %>% filter(!
airquality %>% filter(!is.na(airquality$Solar.R,airquality$Ozone,airquality$Wind)) %>% mutate(New = mean(airquality$Solar.R,airquality$Ozone,airquality$Wind))
但这给了我同样的错误
有人能就如何解决这个问题提出建议吗
非常感谢 您可以使用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
尝试:
airquality%>%mutate(New=rowMeans([c(“Solar.R”、“Ozone”、“Wind”)]),na.rm=T)
@A.Suliman-非常感谢您,您的代码airquality%>%rowwise()%%>%mutate(New=means(c(Solar.R、Ozone、Wind)、na.rm=TRUE))运行得非常好。
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