r - 如何计算R中三维坐标系中两点之间的距离
问题描述
我正在尝试计算三维坐标系中两点之间的距离。我有两点:1)“释放”(x,y,z),2)“重新捕获”(x,y,z)。我想为每个重新捕获的人计算这两个点之间的欧几里得距离。
我在 R 中导入的数据集如下所示:
| | Rel_x | Rel_y | Rel_z | Rec_x | Rec_y | Rec_z | Distance |
|--------------|---------|---------|--------|---------|---------|--------|----------|
| Individual_1 | 231.114 | 177.002 | 17.329 | 228.288 | 178.908 | 17.243 | ? |
| Individual_2 | 239.028 | 178.789 | 16.526 | 239.057 | 178.706 | 16.499 | ? |
| Individual_3 | 212.109 | 210.142 | 18.791 | 212.300 | 208.693 | 18.372 | ? |
我还想添加一列(距离)来报告“Release”和“Recapture”两点之间的欧几里得距离。
我曾尝试使用 dist() 函数,但我不确定我的代码行是否正确,例如
dist (data_set), method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
当我运行这行代码时,我收到以下信息:
Warning message: In dist(data_set) : NAS introduced by coercion
你有什么建议吗?
解决方案
将数据框一分为二,分别为每个点 Release 和 Recapture,然后计算 Euclidean 度量。
例如,假设您的数据框名为df
,前三列用于第一个点,接下来的 3 列用于第二个点:
sqrt(rowSums(((df[,1:3]-df[,4:6])^2))
推荐阅读
- opencart - payU money 完整的个人资料正在进行中 opencart 集成过程
- c++ - 需要一些关于如何改进这些命令字符串生成器功能的建议
- javascript - 替换 keyup 上的文本而不显示默认值
- javascript - 为什么打开和关闭后展开的卡片预览文字增加了?
- java - Wildfly 忽略包含的库
- android - 链接 react-native-splash-screen 时出错
- python - 滚动时更改滚动窗口大小
- r - 第二行作为列标题使用 R Shiny 中的 DT 数据表
- java - [vert.x]Vertx tcp 套接字在写入快速时读取部分消息
- ruby-on-rails - 监控 bundle exec rails s