我有一个物种列表,我正在对每个物种的数据集过滤运行一个集成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 )
})
谁能帮我一下?我只想要每个"输出"。使用过滤器中指定的物种名称来命名。谢谢你尝试使用split
与imap
-
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
中使用。