r - 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)
推荐阅读
- javascript - 带有 Vuejs 的 Laravel 在没有 php artisan serve 的情况下运行项目
- asp.net-core - 如何在同一个 .net core 3 应用程序中使用剃须刀页面和控制器?
- python - 在 Pandas DataFrame 中查找数值最接近的行
- javascript - 如何在 Metro 中获取 React Native 变体?
- akka - Akka - 在创建时强制道具序列化
- python - Pandas Dataframe 作为 Pyomo 优化模型中的参数
- linkedin - 是否可以使用linkedin API 获取带有特定主题标签的帖子?
- sharepoint-2013 - 有没有办法控制共享点列表项上最后修改的人是谁
- java - 使用单声道
在 Spring 中填充 Cloud Firestore 实体 - javascript - 如何使用 Ajv 编译 JSON Schema 的子集?