如何用R中的行平均值插补缺失值

如何用R中的行平均值插补缺失值,r,na,R,Na,从一个大数据帧中,我提取了一行数字数据并保存为向量。某些值丢失并标记为NA。我想用行平均值来插补缺失的值 谢谢你使用这个: filter <- is.na(myVec) myVec[filter] <- colMeans(myDF[,filter], na.rm=TRUE) filter让x成为你的向量: x <- c(NA,0,2,0,2,NA,NA,NA,0,2) ifelse(is.na(x), mean(x, na.rm = TRUE), x) # [1] 1 0

从一个大数据帧中,我提取了一行数字数据并保存为向量。某些值丢失并标记为NA。我想用行平均值来插补缺失的值

谢谢你使用这个:

filter <- is.na(myVec)

myVec[filter] <- colMeans(myDF[,filter], na.rm=TRUE)

filter让
x
成为你的向量:

x <- c(NA,0,2,0,2,NA,NA,NA,0,2)
ifelse(is.na(x), mean(x, na.rm = TRUE), x)
# [1] 1 0 2 0 2 1 1 1 0 2

x我不想使用myDF。是否可以仅使用myVec替换行本身中缺少的值?@user466663,因此在编写问题时需要区分哪些是相关的,哪些不是相关的。你应该从“我有一个向量……”开始。弗洛德尔,事实上,你已经成功地阅读了《OP mind》和《我的心灵》。谢谢使用as.numeric将向量转换为数值后,我的向量如下所示:[1]NA NA NA-0.58 0.23-0.23 0.08-0.62 0.55-0.32 0.03-0.56[13]0.47-0.15 0.49 NA 0.23-0.49 0.33 0.18 0.65-0.29 NA在运行代码示例后,我得到以下内容:[1]3.857953e-18 3.857953e-18 3.857953e-18-5.800000e-01 2.300000e-01[6]-2.300000e-01 8.000000e-02-6.200000e-01 5.500000e-01-3.200000e-01我试图将输出转换为数字,但没有成功。谢谢,有什么问题吗?是不是你们得到的是科学记数法中的数字?是的,我想转换成数字。ThanksIt已经是数字的了(请参见
is.numeric(x)
,但是由于均值中的浮点错误,它是用科学记数法打印的。如果您想消除一些浮点错误以便“打印得很好”,您可以执行类似
舍入(x*1e5)/1e5
。。。
x[is.na(x)] <- mean(x, na.rm = TRUE)