如何在 R 中使用 knn 查找缺失值

How to find the missing value using knn in R

这是我创建的数据集:

ID <- c('X',1,2,3)
Age <- c(30,25,33,35)
Asset_Size <- c(60,50,60,80)
Income <- c(NA,100000,90000,150000)
chart1 <- data.frame(ID,Age,Asset_Size,Income)

如果 K = 3 且方法 =“距离加权投票”,我正在尝试查找客户 X 的收入缺失值。到目前为止,我已经使用 "unweighted vote" 方法完成了它,这是它看起来像什么。

train <- chart1[2:4, 2:3]
test <- chart1[1, 2:3]
cl <- chart1[2:4, 1]
knn(train, test, cl, k = 3, prob = T)

我如何使用 K = 3 和“距离加权投票”方法找到缺失值?谢谢

require(VIM)
require(laeken)
kNN(chart1, k = 3, numFun = weightedMean, weightDist=TRUE)

Time difference of 0.008000851 secs
  ID Age Asset_Size   Income ID_imp Age_imp Asset_Size_imp Income_imp
1  X  30         60 106666.7  FALSE   FALSE          FALSE       TRUE
2  1  25         50 100000.0  FALSE   FALSE          FALSE      FALSE
3  2  33         60  90000.0  FALSE   FALSE          FALSE      FALSE
4  3  35         80 150000.0  FALSE   FALSE          FALSE      FALSE