【发布时间】:2025-12-29 05:45:12
【问题描述】:
如果我有一个数据框 df
df=data.frame(x=1:20,y=c(1:10,rep(NA,10)),z=c(rep(NA,5),1:15))
我知道用给定列的平均值替换 NA,我们可以使用
df[is.na(df$x)]=mean(df$x,na.rm=T)
我想要找到的是一种使用单个命令的方法,以便它一次对列执行此操作,而不是对每一列重复它。
怀疑,我需要使用 sapply 和函数,我尝试过类似的方法,但显然这不起作用
sapply(df,function(x) df[is.na(df$x)]=mean(df$x,na.rm=T))
任何建议都会很棒。我试图搜索以前的帖子,但找不到类似的问题正在解决。
【问题讨论】: