计算 R 中多个栅格对象的频率
Count freq of multiple raster objects in R
我想用 150 个光栅对象的频率写一个 df。
我知道我可以使用
读取单个光栅对象
raster_x <- raster::raster()
我可以通过
进一步获取频率
raster_freq_y <- raster::freq(raster_x)
之后,我可以使用
将多个光栅对象的频率输出绑定到一个 df
cbind.data.frame(raster_freq_x, raster_freq_y)
我不知道如何一次性处理 150 个光栅对象?
我应该使用循环吗?如果是这样,什么样的循环才有意义?
感谢任何帮助。
如果 RasterLayer
个对象具有相同的范围和分辨率,您可以将它们组合在一个 RasterStack
中。下面的例子来自?freq
示例数据:
library(raster)
r <- raster(nrow=18, ncol=36)
r[] <- runif(ncell(r))
r[1:5] <- NA
s <- stack(r, r*2, r*3)
解决方案:
freq(s, merge=TRUE)
如果 RasterLayer
个对象不是 具有相同的范围和分辨率,您可以将它们放在一个列表中并使用 lapply
ss <- list(r, r*2, r*3)
lapply(ss, freq)
我想用 150 个光栅对象的频率写一个 df。
我知道我可以使用
读取单个光栅对象raster_x <- raster::raster()
我可以通过
进一步获取频率raster_freq_y <- raster::freq(raster_x)
之后,我可以使用
将多个光栅对象的频率输出绑定到一个 dfcbind.data.frame(raster_freq_x, raster_freq_y)
我不知道如何一次性处理 150 个光栅对象?
我应该使用循环吗?如果是这样,什么样的循环才有意义?
感谢任何帮助。
如果 RasterLayer
个对象具有相同的范围和分辨率,您可以将它们组合在一个 RasterStack
中。下面的例子来自?freq
示例数据:
library(raster)
r <- raster(nrow=18, ncol=36)
r[] <- runif(ncell(r))
r[1:5] <- NA
s <- stack(r, r*2, r*3)
解决方案:
freq(s, merge=TRUE)
如果 RasterLayer
个对象不是 具有相同的范围和分辨率,您可以将它们放在一个列表中并使用 lapply
ss <- list(r, r*2, r*3)
lapply(ss, freq)