r语言 - Purrr包在SSDM的每个输出名称中添加物种名称



我有一个物种列表,我正在对每个物种的数据集过滤运行一个集成SDM建模函数,以从数据集中给出每个物种的集成SDM。

我已经使用purrr包来运行它,当没有添加命名约定时,代码工作得很好。但是,当它输出Ensemble时。对于每个物种,它们都被命名为"ensemble. SDM",所以当我想要堆叠它们时,我不能,因为它们都被命名为相同的东西。

我希望能够为模型的每个输出命名不同的东西,理想情况下与在行中挑选的物种名称相关联:data <- Occ_full %>% filter(NAME == .x)

代码如下:

list_of_species <- unique(unlist(Occ_full$NAME))
# Return unique values
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)
})

我试图让它在里面命名的代码,在下面,但它不起作用,它用很多行号的重复来命名它。

output <- purrr::map(limit_list_of_species, ~ {
data <- Occ_full %>% filter(NAME == .x)
label <- as.character(data)
ensemble_modelling(c('GAM'), data, Env_Vars,
Xcol = 'LONGITUDE', Ycol = 'LATITUDE', rep = 1,  name = label )
})
谁能帮我一下?我只想要每个"输出"。使用过滤器中指定的物种名称来命名。谢谢你

尝试使用splitimap-

list_of_species <- split(Occ_full, Occ_full$NAME)
output <- purrr::imap(list_of_species,~{
ensemble_modelling(c('GAM'), .x, Env_Vars,Xcol = 'LONGITUDE', 
Ycol = 'LATITUDE', rep = 1, name = .y)
})

split将确保list_of_species的命名可以在imap中使用。

相关内容

  • 没有找到相关文章

最新更新