r - 根据栅格图层名称上的特定模式从栅格堆栈中选择栅格图层

标签 r stack r-raster

我在 r 中有一个栅格堆栈,其中包含 499 个图层。每一层都有一个特定的名称模式。

[1] "Sacharovi_PA1_RUN1_GAM"               "Sacharovi_PA1_RUN1_GLM"              
[3] "Sacharovi_PA1_RUN1_RF"                "Sacharovi_PA1_RUN1_CTA"              
[5] "Sacharovi_PA1_RUN1_MAXENT.Phillips"   "Sacharovi_PA1_RUN2_GAM"              
[7] "Sacharovi_PA1_RUN2_GLM"               "Sacharovi_PA1_RUN2_RF"               
[9] "Sacharovi_PA1_RUN2_CTA"                 

我想要做的是将每个模型(GAM、RF、GLM、CTA、MAXENT)保存到不同的堆栈。如何选择我想要的模型(所有包含“GAM”/“GLM”/“RF”等词的模型)?

到目前为止,我一直在尝试这样处理光栅堆栈的一个子集:

  result <- subset(my_stack, grep("GAM"))

但不会起作用。 你能帮我解决这个问题吗?

最佳答案

您似乎没有正确完成 grep - 您必须告诉它搜索名称,见下文。还要确保您通过指定栅格包访问正确的函数。 Subset 是一个非常通用的函数名称,它可能已被您在 raster 之后添加的另一个库所取代 - 或者如果您根本没有加载该库,R 将默认为 base::subset

我也更喜欢使用 value = TRUE 进行调试,尽管这两种方式都可以。

all_GAM <- raster::subset(my_stack, grep('_GAM', names(my_stack), value = T))

关于r - 根据栅格图层名称上的特定模式从栅格堆栈中选择栅格图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46517573/

相关文章:

r - 在 R 中排名时如何保留连续的 (1,2,3,...n) 排名符号?

r - 从主成分的 K 均值中提取有用信息

Java 堆栈 : Don't allow duplicates fragment entries into stack

r - 从多个数据集 R 中提取坐标

R:识别相邻单元格的簇(0-1 值的二维矩阵中的连续区域)

python - 从(古代)SAS 版本 6(适用于 Python/R)读取 .ssd01 数据文件

r - 如何在 ggplot2 R 中创建 react 规范(按行加入)?

c - 为什么 Windows 使用堆栈来存储局部变量?

winapi - Windows 函数调用中的堆栈是如何设置的?

R:按背景图像顺序绘制许多图的有效方法