2016-06-16 9 views
3

を使用して、0-1(ブール値)の行列内の連続領域を特定することに興味があります。私は0-1値の行列を与えて、連続する各クラスタ(対角線の数を数えるかどうかの選択肢は理想的ですが)を識別し、そのクラスタ内のセルの数を登録したいと思います。R:隣接するセルのクラスタを特定する(0-1値の2次元行列の連続領域)

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

(上から下へ)で、4個の異なる基を(私は対角線を数えていますので)私が識別できるようにしたいと思います2:

は、次の例を見てみましょう、1つ、5つ、および2つのセルをクラスタごとに割り当てます。

rasterパッケージにはadjacentという機能があり、隣接するセルの位置を突き止める機能はありますが、これを行う方法がわかりません。

最後の制約は、理想的な解決方法が速いことです。私はdata.tabledt[, lapply(.SD, ...)]のグループ内でそれを使用できるようにしたいと考えています(それぞれのグループは、私がマトリックスを作成できるデータセットです)。

+0

あなたは(https://cran.r-project.org/web/packages/spdep/vignettes/nb [* *隣人を作成する]に興味がありますする必要が。 pdf)? – Konrad

+1

ここに複製、http://stackoverflow.com/q/35772846/604456ラスタパッケージの 'clump'関数を参照してください。 –

+0

@AndyWあなたが回答として書いたら、私はそれを受け入れ、それを閉じてマークします。 – mbarete

答えて

関連する問題