如何在一系列栅格上使用lapply

时间:2016-12-22 11:05:34

标签: r list dataframe lapply raster

我有一个栅格,我需要比较第一行和最后一行的值。 (我想知道,如果有一个群集连接顶部和底部) 这就是我所做的:

V1=getValues(r,row=1)
V1=V1[V1!=0]
V1=unique(V1)

与最后一行相同。 然后我这样做:

V1 %in% V2

没关系。它正在发挥作用。但是我需要用很多栅格做到这一点。 我考虑用这几个栅格创建一个列表,然后在列表的每个栅格上运行上面的脚本。我以为我可以用lapply做到这一点,但我不知道该怎么做。

或许有可能得到一些数据帧或类似的东西

raster     connected 
r1         TRUE
r2         FALSE
r3         FALSE
...        ...

1 个答案:

答案 0 :(得分:1)

FUN.raster <- function(r) {
  x <- getValues(r, row = 1)
  x <- x[x!=0]
  x <- unique(x)

  y <- getValues(r, row = nrow(r))
  y <- y[y!=0]
  y <- unique(y)

  x %in% y
}

然后

sapply(rasterlist, FUN.raster)

这为您提供了TRUE/FALSE的布尔向量,其长度为rasterlist。请注意,这是未经测试的,因为您没有提供任何示例数据。