r - R中矢量预测中的欧几里德距离计算
问题描述
我有一个矩阵,它通过 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)
}
解决方案
尝试给我们一个可重复的示例,以便我们可以通过在您的数据集上使用该函数dput()
并将输出上传到论坛来更好地帮助您。查看此链接:如何制作出色的 R 可重现示例
你的循环似乎没有做你想做的事。你可以试试运行这个吗:
if(p<39){
distance <- abs(p-x)
} else if(x<77){
distance <- (sqrt(1)^2+((p-38)^2)
}
您的循环实际上并没有改变距离的值,而只是打印语句。另外,如果 p>39 且 x>77 会怎样?如果这是可能的,您将需要一个最终else
声明,说明在这种情况下您将做什么。
再说一次,如果您发布一个可重现的示例,我会提供更多帮助!
推荐阅读
- command-line - 为什么 python pyinstaller 不能与我的 Python 3.7.0 文件一起使用?
- python-3.x - 从头开始实现 Faster Rcnn
- github - 即使我有足够的访问权限,为什么 Git push 会抛出远程解包失败错误
- google-analytics-api - 如何在我的网站上向用户展示 Google 分析数据?
- swift - 如何快速更新存储节点firebase
- entity-framework-core - 需要更新 EF Core 工具
- sql - 选择最近的日期
- c# - 如何在编辑时在 Windows 应用程序中显示基于组合框选择的控件?
- c# - Microsoft.Azure.Management.ApiManagement 实现
- javascript - 文本框中的自动热键