我很新,并在使用R. 这是我的问题是初学者:如何比较栅格的单元格值与此栅格的先前单元格的值?二进制[R
我有很多细胞的大栅格。这是一个二进制栅格,所以只有0和1。我必须通过整个光栅并找到0。如果cell [i,j]是0,那么我需要在它的4个邻居上进行配对。
我只是想用一个小的7x7矩阵来尝试这个。
我的想法是利用这样的循环:
nr3=0
for (i in 1:7)
{for (j in 1:7)
{if (m[i,j]==0)
{if (m[i-1,j]!=0&&m[i,j-1]!=0)
{nr3++}
if (m[i-1,j]!=0&&m[i,j+1]!=0)
{nr3++}
if (m[i,j+1]!=0&&m[i+1,j]!=0)
{nr3++}
if (m[i+1,j]!=0&&m[i,j-1]!=0)
{nr3++} }}}
所以这就是它必须是。 但出现此错误:
Error in if (m[i-1,j]!=0&&m[i,j-1]!=0 {: missing value where TRUE/FALSE needed
我可以看到问题。在边界你不能比较所有的邻居。 这就是为什么我试图与
for (i in 2:6)
for (j in 2:6)
它的工作。但问题是有些人不见了。
那么我该怎么办?顺便说一句,我希望有另一种可能性来解决这个任务。也许我不需要一个循环?我可以想象这对于一个非常大的光栅来说不是一个很好的解决方案。 有没有人有想法?
你应该清楚你的意思是什么“需要在其4个邻国寻找配对” ..什么是你在看他们?你期望输出什么?最好用文字说明,而不是让我们从你的代码中找出你的意图。 – jbaums