假设我有这个数据框:
df <- data.frame(replicate(10,sample(1:25,1000,rep=TRUE)))
我也有这个观察结果,它不在数据集中。
obs <- c(12, 2, 19, 3, 5, 8, 12, 4, 5, 1)
我想做的是在数据帧 df 中找到 obs 的k个最近邻居。
下面的代码使我可以得到一个包含df中每个观测值的30个最近邻居的索引的矩阵。
knnmatrix <- FNN::get.knn(scale(df), k = 30)
然后我可以用它来获取仅包含我想要的任何观测值的30个最近邻居的数据框:
df2 <- df[knnmatrix$nn.index[3,],]
但是,由于它不在 df 中,因此我似乎找不到一种方法来获取 obs 的这些值。什么是在数据帧 df 中获取 obs 的k(在这种情况下为30)最近邻居的索引的好方法?