Добавьте имена к элементам списка, чтобы имена были индивидуально связаны с элементами в коде. - PullRequest
1 голос
/ 20 июня 2020

У меня простой вопрос об именах элементов списка.

Мои данные находятся в списке, упрощенном примере ниже. Я могу добавлять имена к элементам списка, используя names():

models <- list("fit_1", "fit_2", "fit_3")

names(models) <- c("simple", "extended", "log linear")

, что дает именованный список в этой форме:

models
#> $simple
#> [1] "fit_1"
#> 
#> $extended
#> [1] "fit_2"
#> 
#> $`log linear`
#> [1] "fit_3"

Есть ли способ ввести элементы и имена списка как пары? С моими реальными данными, с более длинным списком и более сложными элементами, было бы неплохо иметь возможность легко проверить, что, скажем, элемент 27 в списке правильно совпадает с 27-м именем.

Моим желаемым результатом будет чтобы иметь возможность сделать что-то вроде этого:

models <- list(
  "fit_1" = names("simple"),
  "fit_2" = names("extended"),
  "fit_3" = names("log linear")
)

, а затем получить именованный список.

Мне было бы особенно интересно, есть ли простой способ tidyverse.

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Попробуйте:

 list(fit1 = "simple", fit2="extended",fit3="log linear") 
0 голосов
/ 20 июня 2020

Если вопрос касается трубы, используйте функцию

`names<-`

как в

library(dplyr)
library(magrittr)

models <- list("fit_1", "fit_2", "fit_3")
newnames <-c("simple", "extended", "log linear")

models %<>% `names<-`(newnames)
models
#$simple
#[1] "fit_1"
#
#$extended
#[1] "fit_2"
#
#$`log linear`
#[1] "fit_3"
...