我是R的初学者,我有两个2D矩阵,其中包含经度(第一个colum)和纬度(第二个colum)数据。两个矩阵的大小分别是: dim_o(93264,2),dim_m(174688,2)。我想找出dim_m与dim_o的近邻点。我的意思是参考矩阵是dim_o。我可以用Matlab (MeteoLab工具箱)计算它,方法如下:
[indAng, disAng]=MLknn(dim_o,dim_m,1, 'Norm-2 ')我在库(类)中尝试了R中的knn函数:
x.train=dim_o
x.test=dim_m
response_dim=dim_o
dim.knn=knn(train=x.train, test=x.test, cl=response_dim, k=1)但我发现了一个错误:
Error in knn(train = x.train, test = x.test, cl = response_dim, k = 1) :
'train' and 'class' have different lengths如何计算R中两个不同大小矩阵的最近邻坐标点?谢谢你提前提供帮助!
发布于 2016-03-09 09:57:25
对于cl参数,您需要一个向量,只要train中有行;您要传递一个矩阵,该矩阵被转换为向量的两倍长。尝试:
dim.knn=knn(train=x.train, test=x.test, cl=seq_len(nrow(train)), k=1)您还可以使用knn1()并省略k=1参数。还有其他实现k近邻的包,如FNN。
https://stackoverflow.com/questions/35887201
复制相似问题