R中矢量预测的欧氏距离计算
我有一个矩阵,它通过38*35矩阵的坐标(例如,(1,1))保存位置信息R中矢量预测的欧氏距离计算,r,vector,distance,R,Vector,Distance,我有一个矩阵,它通过38*35矩阵的坐标(例如,(1,1))保存位置信息 ##(1,1) (1,2) (1,3) (1,4) .... (1,38) ##(2,1) .... ##.... ##(35,38) 我已经将每个点创建成一个向量数组,这样(1,1)=1,(1,2)=2。。。(2,1)=39, (2,2)=40, .... (35,38)=1330,依此类推 #1 #2 #3 #4 #5 #6 #7 #8 ... #1330 计划是将预测数据点p放入,并找出p和实际数据X之间的欧氏
##(1,1) (1,2) (1,3) (1,4) .... (1,38)
##(2,1) ....
##....
##(35,38)
我已经将每个点创建成一个向量数组,这样(1,1)=1,(1,2)=2。。。(2,1)=39, (2,2)=40, .... (35,38)=1330,依此类推
#1
#2
#3
#4
#5
#6
#7
#8
...
#1330
计划是将预测数据点p放入,并找出p和实际数据X之间的欧氏距离。直到两个点都在同一行(距离等于两个数字的减法),这是没有问题的,但如果我比较的两个数据落在不同的行上,这就成了一个问题
例如,“实际上是指(2,2),我不能再减法了
我一直在尝试创建if
语句,但它似乎变得越来越复杂
#original data: x, predicted data:p
if(p<39){
distance <- abs(p-x)
} else if(x<77){
distance <- (sqrt(1)^2+((p-38)^2)
}
原始数据:x,预测数据:p
如果(p请尝试为我们提供一个可复制的示例,以便我们能够更好地帮助您,方法是在您的数据集上使用函数
dput()
,并将输出上载到论坛。请查看此链接:
看起来你的循环并不是在做你想做的事情。你能试着运行这个吗:
if(p<39){
distance <- abs(p-x)
} else if(x<77){
distance <- (sqrt(1)^2+((p-38)^2)
}
if(pthanks!我会改变我的if语句并继续思考策略