我正在寻找围绕所有1
s和0
s 创建集群。与Mindsweeper相似,我想基本上在所有1
s 周围“画一个圆” ,并在0
s存在的地方创建边框。
我尝试使用hclust()
和创建距离矩阵,但是我正在使用的实际表非常大,并且运行时遇到了问题。
test_matrix <- matrix(c( 1,1,0,0,0,0,1,
1,1,1,0,0,1,0,
0,1,0,0,0,1,0,
0,0,0,1,1,1,0,
0,0,0,1,1,1,1),nrow=5)
Run Code Online (Sandbox Code Playgroud)
结果如下:
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 0 0 1 0 1 0
[2,] 1 1 0 0 0 1 1
[3,] 0 1 1 0 0 0 1
[4,] 0 1 0 0 0 0 1
[5,] 0 1 0 1 1 0 1
Run Code Online (Sandbox Code Playgroud)
我的规则如下:如果通过UP,DOWN,LEFT,RIGHT,DIAGONAL(任何方向)1
将任何一个连接到任何1
一个,请继续增加“集群”。根据这些规则(每个点有8个连接点),我可以发现四个孤立1
s的唯一簇。
您将如何编码以找到这些组?