R使用ifelse将is.na替换为条件平均值/中值/模式
我有两个栏目“性别”和“年龄”,其中“性别”是男性的1,女性的2。年龄是一个大概介于0.5和90之间的数字,其中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)),
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'。除此之外,还有很多很好的建议。完美的