Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 插补不同列中NA值的平均值_R - Fatal编程技术网

R 插补不同列中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

我从一个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个变量,看起来与此类似(这只是一个数据片段)


使用循环通过列的解决方案

示例数据

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