2013-05-01 54 views
0

有R中的任何功能,可以帮助恢复估算值,例如:如何返回回的估算值中的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个估计值的缺失值吗?

回答

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]]) 
    } 
+1

使用相同的一般原则,您可以使用* imputeddata [is.na(x)] * – Gala 2013-05-01 13:21:27

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 

希望有帮助。