【问题标题】:R: Identify Clusters of Adjacent Cells (contiguous regions in 2D matrix of 0-1 values) [duplicate]R:识别相邻细胞簇(0-1值的二维矩阵中的连续区域)[重复]
【发布时间】:2016-10-18 10:31:34
【问题描述】:

我有兴趣使用 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)

我希望能够识别(因为我正在计算对角线)四个不同的组,每个集群(从上到下)有 2、1、5 和 2 个细胞。

raster 包有一个adjacent 函数,它可以很好地定位相邻的单元格,但我不知道该怎么做。

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

【问题讨论】:

  • 你对creating neighbours感兴趣吗?
  • 在此处复制,stackoverflow.com/q/35772846/604456。请参阅光栅包中的clump 函数。
  • @AndyW 如果您将其写为答案,我会接受并将其标记为已关闭
  • 我会将其标记为重复关闭。对于系统来说,总比让相同的答案四处漫游要好。

标签: r algorithm r-raster


【解决方案1】:

你肯定需要connected component labeling算法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 2021-03-02
    • 1970-01-01
    • 2015-08-22
    • 2012-09-10
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    相关资源
    最近更新 更多