我从一个0为空值的数据集开始。我已经将这些0值更改为NA'但是我想要估算NA值的均值。以下代码是我到目前为止所做的。这可以针对整个数据集进行,还是需要单独完成每一列?
rm(list=ls())
data=read.csv("Alzheimers.csv")
data1=read.csv("Alzheimers_diagnosis.csv")
summary (data)
alz = read.csv("Alzheimers.csv")
alz[alz==0]= 'NA' #converting any zero values to NA
summary(alz)
该数据集包含333个变量的131个变量,看起来与此类似(这只是一小段数据)
X ACE_CD143_Angiotensin_Converti ACTH_Adrenocorticotropic_Hormon AXL
1 2.6247890 2.673159 NA
2 0.5843270 NA 2.61179
3 NA 4.613985 0.59821
4 1.3450986 0.760032 4.53229
5 4.6150082 NA NA
答案 0 :(得分:0)
使用循环遍历列的解决方案。
示例数据
dat<-data.frame(v1=c(2,1,5,6,7,NA,NA,9,8), v2=c(1,NA,3,6,7,8,8,NA,9), v3=c(0,0,NA,NA,NA,0,2,1,7))
每列的估算值
imp<-apply(dat, 2, mean, na.rm=TRUE)
以df
计算平均值df<-dat
for(i in 1:ncol(dat))
{df[is.na(df[,i]),i]<-imp[i]
}