<分区>
我对使用 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)
我希望能够识别(因为我计算的是对角线)四个不同的组,每个簇有(从上到下)2、1、5 和 2 个单元格。
raster
包有一个 adjacent
函数,它可以很好地定位相邻像元,但我不知道如何做到这一点。
最后一个约束是理想的解决方案应该是快速的。我希望能够在具有大量组的 data.table
dt[, lapply(.SD, ...)]
类型情况下使用它(每个组都是一个数据集,我可以从中创建矩阵)。