0

R中是否有任何函数可以帮助返回推算值,例如:

x <- c(23,23,25,43,34,22,78,NA,98,23,30,NA,21,78,22,76,NA,77,33,98,22,NA,52,87,NA,23,
23)

通过使用单一线性插补方法,

na.approx(x)

我得到的估算数据为;

[1] 23 23 25 43 34 22 78 35 98 23 30 24 21 78 22 76 22 77 33 98 22 14 52 87 59
[26] 23 23

如何在不逐一查看完整数据集的情况下从程序中获取估算值?例如,如果我估算的数据包含 $n=200$ 个观察值,我可以得到 20 个缺失值的估计值吗?

4

2 回答 2

2

我不是 100% 确定我是否正确,但这有帮助吗?

您首先保存原始 NA 值所在的位置,例如,第一个 NA 值位于第 8 位。将其保存到虚拟变量中

dummy<-NA
for (i in 1:length(x)){
if(is.na(x[i]))  dummy[i]<-i
}

现在得到推算数据中的对应值

    imputeddata<-na.approx(x)


  for (i in 1:length(imputeddata)){
  if(!is.na(imputeddata[dummy[i]])) print(imputeddata[dummy[i]])
    }
于 2013-05-01T13:15:07.457 回答
1

您可以使用is.na仅选择以前的那些值NA

> x <- c(23,23,25,43,34,22,78,NA,98,23,30,NA,21,78,22,76,NA,77,33,98,22,NA,52,87,NA,23,23)
> na.approx(x)[is.na(x)]
[1] 88.0 25.5 76.5 37.0 55.0

希望有帮助。

于 2013-05-15T15:24:00.207 回答