#r #list
#r #Список
Вопрос:
Я хотел бы получить доступ ко всем элементам в моделях, которые соответствуют AICv. Как мне сделать это с помощью следующего кода, пожалуйста? Я не хочу выписывать models[[1]]$AICv, models[[2]]$AICv
, но предпочел бы их все одновременно. Спасибо
Model_eval_Mixed <- list(AICv=1, Probabilities = matrix(sample(9,9),3,3))
Model_eval_Tan <- list(AICv=2, Probabilities = matrix(sample(9,9),3,3))
Model_eval_Exp <- list(AICv=1.5, Probabilities = matrix(sample(9,9),3,3))
Model_eval_Gau <- list(AICv=2.5, Probabilities = matrix(sample(9,9),3,3))
#models = c(Model_eval_Tan,Model_eval_Mixed,Model_eval_Gau,Model_eval_Exp)
models = list(Model_eval_Tan=Model_eval_Tan,Model_eval_Mixed=Model_eval_Mixed,Model_eval_Exp=Model_eval_Exp,Model_eval_Gau=Model_eval_Gau)
Ответ №1:
Вы можете использовать sapply
с функцией [[
и именем AICv
.
sapply(models, "[[", "AICv")
# Model_eval_Tan Model_eval_Mixed Model_eval_Exp Model_eval_Gau
# 2.0 1.0 1.5 2.5
Комментарии:
1. Хороший друг!!
2. Может
lapply(models, "[[", "Probabilities")
быть?
Ответ №2:
purrr::map
семейство функций позволяет это сделать, если вы хотите использовать подход tidyverse:
library(purrr)
map_dbl(models, "AICv")
# Model_eval_Tan Model_eval_Mixed Model_eval_Exp Model_eval_Gau
# 2.0 1.0 1.5 2.5