Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R使用ifelse将is.na替换为条件平均值/中值/模式_R_If Statement_Conditional - Fatal编程技术网

R使用ifelse将is.na替换为条件平均值/中值/模式

R使用ifelse将is.na替换为条件平均值/中值/模式,r,if-statement,conditional,R,If Statement,Conditional,我有两个栏目“性别”和“年龄”,其中“性别”是男性的1,女性的2。年龄是一个大概介于0.5和90之间的数字,其中NAs分散在周围 如何运行ifelse公式,以便在相应单元格的年龄为NA时填写男性和女性的平均年龄 我如何修改代码以帮助实现这一点?当前代码: dataset$Age = ifelse(is.na(dataset$Age), ave(dataset$Age, FUN = function(x) mean(x, na.rm = TRUE)),

我有两个栏目“性别”和“年龄”,其中“性别”是男性的1,女性的2。年龄是一个大概介于0.5和90之间的数字,其中
NA
s分散在周围

如何运行
ifelse
公式,以便在相应单元格的年龄为
NA
时填写男性和女性的平均年龄

我如何修改代码以帮助实现这一点?当前代码:

dataset$Age = ifelse(is.na(dataset$Age),
                 ave(dataset$Age, FUN = function(x) mean(x, na.rm = TRUE)),
                 dataset$Age)
我想在
NA
空间中为男性和女性输入一个单独的平均值


提前谢谢你的帮助

根据评论编辑:

我可以通过两个步骤来解决这个问题:
-首先使用聚合查找按性别划分的平均年龄
-然后使用ifelse

library(dplyr)
df_agg <- df %>% group_by(gender) %>% summarise(Age = mean(age, na.rm = TRUE))
male_avg <- df_agg$Age[df_agg$gender == 1]
female_avg <- df_agg$Age[df_agg$gender == 2]

df$age <- ifelse(is.na(df$age), ifelse(df$gender == 1, male_avg, female_avg), df$age)
库(dplyr)
df_agg%按性别分组%>%总结(年龄=平均值(年龄,na.rm=真))

你应该用你迄今为止尝试过的方法来编辑你的问题。谢谢。对于其他人来说,代码只需做一些小的调整就可以完美地工作。注:在第一行末尾添加括号(例如,…na.rm=TRUE)))也收到错误,原因是外螺纹平均线和内螺纹平均线的尺寸数量不正确。解决方案:从两行中删除',2'。除此之外,还有很多很好的建议。完美的