R:识别相邻单元格的簇(0-1 值的二维矩阵中的连续区域)

标签 r algorithm r-raster

<分区>

我对使用 R 识别 0-1( bool )值的矩阵(不一定是正方形)内的连续区域很感兴趣。我想,给定一个 0-1 值的矩阵,来识别每个连续的集群(对角线计数,尽管是否对它们进行计数的选项是理想的)并记录该集群中的单元格数量。

举个例子:

set.seed(14)
p <- matrix(0, ncol = 10, nrow = 10)
p[sample(1:100, 10)] <- 1
ones <- which(p == 1)
image(p)

Image of Plot

我希望能够识别(因为我计算的是对角线)四个不同的组,每个簇有(从上到下)2、1、5 和 2 个单元格。

raster 包有一个 adjacent 函数,它可以很好地定位相邻像元,但我不知道如何做到这一点。

最后一个约束是理想的解决方案应该是快速的。我希望能够在具有大量组的 data.table dt[, lapply(.SD, ...)] 类型情况下使用它(每个组都是一个数据集,我可以从中创建矩阵)。

最佳答案

你绝对需要connected component labeling算法

enter image description here

关于R:识别相邻单元格的簇(0-1 值的二维矩阵中的连续区域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37867115/

相关文章:

r - 找出R表中的列是否包含重复值?

python - 如何反转 python 中的数学函数,以便可以从输出中计算出输入?

r - R 中的比例和颜色光栅图例

r - 无法分配 geom_raster 大小向量的问题

r - 在 Knitr 中为 md 或 HTML 输出设置页面宽度

regex - R 正则表达式 : unexpected behavior of "[:digit:]"

python - Python 中的 R 风格负索引。不要切片

java - 在 Java 中使用数组的更好的最小值和最大值算法

algorithm - 为游戏领域创建算法

r - 在 R 中组合多边形并计算它们的面积(即单元格数)