R 插补不同列中NA值的平均值
我从一个0为空值的数据集开始。我已将这些0值更改为NA,但我想估算NA值的平均值。以下代码是我到目前为止所做的。可以对整个数据集执行此操作,还是需要对每个列单独执行此操作R 插补不同列中NA值的平均值,r,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' #conver
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个变量,看起来与此类似(这只是一个数据片段)
使用循环通过列的解决方案 示例数据
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))
datTry设置,na.strings=0
在read.csv
中我想将na更改为每列的平均值我怀疑将零转换为na
s是否有任何意义,但如果您坚持,在转换为na
s后,您可以在colMeans中执行类似Res Error的操作(alz,na.rm=TRUE):“x”必须是我收到的错误消息的数字
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<-dat
for(i in 1:ncol(dat))
{df[is.na(df[,i]),i]<-imp[i]
}