在R中如何将N/A缺失值替换为四舍五入取整后的平均值
解决方案
你只需要对计算得到的年龄平均值调用R内置的round()四舍五入函数即可,修改后的代码如下:
FirstDataSet_NoGaps <- FirstDataSet %>% mutate(Age= ifelse(is.na(Age), round(mean(Age, na.rm = TRUE)), Age))
补充说明
round()函数默认保留0位小数,刚好满足你取整的需求,你也可以显式写为round(mean(Age, na.rm = TRUE), digits = 0)提升代码可读性- 如果你有特殊取整需求:
- 向上取整(只要有小数就进1)可以替换为
ceiling(mean(Age, na.rm = TRUE)) - 向下取整(直接舍弃小数部分)可以替换为
floor(mean(Age, na.rm = TRUE))
- 向上取整(只要有小数就进1)可以替换为
- 如果你需要确保Age列整体为整数类型,可以在最外层套
as.integer():
FirstDataSet_NoGaps <- FirstDataSet %>% mutate(Age = as.integer(ifelse(is.na(Age), round(mean(Age, na.rm = TRUE)), Age)))
内容的提问来源于stack exchange,提问作者Ziggy_Statdust
相关产品推荐
相关产品推荐

