我有一個物種串列,我正在對每個物種的資料集過濾運行一個集合 SDM 建模函式,以從資料集中給出每個物種的集合 SDM。
我使用 purrr 包讓它運行,當沒有添加命名約定時,代碼作業正常。但是,當它為每個物種輸出 Ensemble.SDM 時,它們都被命名為相同的東西“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 )
})
有人可以幫我嗎?我只是希望每個“輸出”都以過濾器中指定的物種名稱命名。謝謝
uj5u.com熱心網友回復:
嘗試使用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.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338649.html
