r - 在 R 中,如何识别在我的逆距离矩阵中包含 INFINITE 值的特定单元格?
问题描述
上下文:我正在使用 ape 包来计算 Moran's I,蚕食了此处确定的过程。我不断收到此错误:
if (obs <= ei) 2 * pv else 2 * (1 - pv) 中的错误:需要 TRUE/FALSE 的地方缺少值
在Stack Overflow和Internet上扎根,我发现了一些建议,即此错误可能是由于具有无限值或 NA 值而导致的。当我运行sum(is.infinite(inv.coord.distances))时,我仍然得到四个无限值。使用sum(is.na())、sum(is.nan())和sum.is(null())返回这些潜在问题的零。当我手动搜索我的 93x93 矩阵时,我看不到任何 INF 值,尽管这种方法不是万无一失的。尽管如此,我不断收到此错误,并且我的 sum(is.infinite()) 操作不断告诉我有四个无限值。无论我使用 UTM 还是纬度和经度,都会发生这种情况。
我的问题:是否有一个命令可以返回矩阵中所有无限值的单元格位置?我试过which(inv.coord.distances != inf),但显然which()不会在矩阵中找到无限值。
解决方案
严重的是一个矫枉过正的解决方案,但这可以非常灵活和通用,可以做许多其他事情。
library(tidyverse)
as_tibble(inv.coord.distances) %>%
mutate(row = row_number()) %>%
gather(Column,Value,-row) %>%
filter(is.na(Value)) #Or some other condition here
推荐阅读
- excel - 宏通过文件夹运行,返回下标超出范围错误
- php - 如何过滤 wordpress/php 中的类别?
- c++ - c ++ Sentinel循环,存储最小和最大数字
- javascript - 表格单元格在单击事件后意外更改大小
- php - 使用多个条件对数组值求和
- excel - 如何将我的 Outlook 电子邮件(在特定时间段内)复制到 Excel?
- excel-formula - 检查两个列表之间的新项目数量
- angular - 跨项目共享 ionic 4 / angular7 模块
- php - 小部件中的 yii2 ajax 验证错误,yii\web\Response
- mongodb - 使用错误索引的 MongoDB 查询