在不同列中输入NA值的均值

时间:2015-03-23 11:49:55

标签: r

我从一个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

1 个答案:

答案 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]
}