R中矢量预测的欧氏距离计算

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之间的欧氏

我有一个矩阵,它通过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之间的欧氏距离。直到两个点都在同一行(距离等于两个数字的减法),这是没有问题的,但如果我比较的两个数据落在不同的行上,这就成了一个问题

例如,“实际上是指(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语句并继续思考策略