You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Purrr包运行SSDM时为各物种Ensemble.SDM输出添加对应物种名

问题原因

你之前尝试的代码错误原因是label <- as.character(data)将筛选后的完整物种数据框转为了字符格式,才会输出大量和物种名无关的行号、字段内容。实际上迭代参数.x本身就是当前循环调用的物种名,直接调用即可。

解决代码

首先给待迭代的物种列表加上自身作为名称,让最终输出的列表自带物种名索引:

# 生成带自身命名的物种列表
limit_list_of_species <- unique(Occ_full$NAME) %>% 
  purrr::set_names()

output <- purrr::map(limit_list_of_species, ~ {
  data <- Occ_full %>% filter(NAME == .x)
  ensemble_modelling(c('GAM'), data, Env_Vars,
            Xcol = 'LONGITUDE', Ycol = 'LATITUDE', rep = 1, name = .x)
})

效果说明

修改后会同时实现两个命名逻辑:

  • 每个ensemble.sdm模型对象内部的name属性会自动匹配对应物种名
  • 输出的output列表的每个元素名称也和物种名一一对应,后续调用output[["物种名"]]即可直接提取对应物种的模型结果,堆叠操作可直接对列表处理无需额外匹配名称

内容的提问来源于stack exchange,提问作者Callahan475

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:15:04