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

时间:2016-06-16 18:46:30

标签: r algorithm r-raster

我有兴趣使用 R 来识别0-1(布尔)值的矩阵(不一定是正方形)内的连续区域。我想,给定一个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, ...)]类型的情况下使用它(每个组都是我可以创建矩阵的数据集)。

1 个答案:

答案 0 :(得分:0)

您肯定需要connected component labeling算法

enter image description here