缺失值-Hot Deck邻居方法

问题描述

| 我的R代码有问题,而是缺少值。实际上不知道如何使用简单的Hot Deck方法估算这些值。例如,拥有这些数据。
1  10000123  111  112820 0.24457235         NA        NA         NA         NA     11
2  10000132  111 2502357 0.19408587 0.19373610 0.6567305 0.01454520 0.13498823     69
3  10000388  111 4472360 0.14774927 0.14918678 0.6853377 0.05233508 0.11314044    106
4  10000792  111  666909 0.10520063         NA        NA         NA         NA     14
5  10002737  111 1139613 0.19944986 0.20114918 0.3564355 0.20135391 0.24106136     23
6  10002741  111  981574 0.11573570         NA        NA         NA         NA     13
7  10002929  111 1417192 0.08770932 0.08387991 0.6106012 0.11078473 0.19473415     24
8  10003396  111  444966 0.19026263 0.18784110 0.5215772 0.16844381 0.12213789     24
9  10003517  111 1230589 0.16393216 0.16358568 0.4614005 0.26670712 0.10830670     19
10 10003546  111  760847 0.12384748         NA        NA         NA         NA     10
在第5列中,需要找到最接近的值,然后在那些位置(NA值)的地方填充相似的受访者。 谢谢。     

解决方法

        我从未使用过热(或冷的)甲板采样。但是,稍加谷歌搜索使我想到了rrp软件包中的
rrp.impute
函数。 这是一个使用一些综合数据的简单示例:
install.packages(\"rrp\")
require(rrp)
set.seed(1)
key <- 1:100
## create random values
value1 <- 10 + 2 * key + rnorm(100,10)
## make 5 values into NAs
missing <- sample( key,5)
value1[missing] <- NA
## build a dataframe
df <- data.frame(key,value1)
## do a nearest neighbor hot deck interpolation
imputed <- rrp.impute( df )$new.data

## let\'s visualize this magic
plot( df)
points(missing,imputed$value1[missing],col=\"red\")
这使用了k = 1的默认值,这是我认为您想要的。最后的漂亮图片看起来像这样: 红色圆圈是估算值,您可以看到它们只是最近的邻居。     ,        我不知道是否有现成的R包,但这可以解决问题:
dfr<-data.frame(c1=c(123,132,388,792,2737,2741,2929,3396,3517,3546),c2=c(0.244,0.194,0.47,0.105,0.199,0.115,0.087,0.190,0.163,0.123),c3=c(NA,0.193,0.149,NA,0.201,0.083,0.187,NA))

hdidx<-which(!is.na(dfr[,3]))
hd<-dfr[hdidx,]
md<-dfr[-hdidx,]
closesthd<-sapply(md[,2],function(curval){which.min(abs(curval-hd[,2]))})
md[,3]<-hd[closesthd,3]
在您的案例需要的地方替换列号+可能还要采取其他距离度量。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...