How to access to an element of a list based on its name?

I’m trying to use the get() function to search for an object based on its name.
It usually works fine but when I want to use it to access an element of a list, it doesn’t work anymore.
Here’s my example :

mylist <- list(a = letters)
mylist$a
get("mylist$a") # => doesn't work !!!
get("mylist") # => works !

>Solution :

You could do this several ways

mylist <- list(a = letters)

with(mylist, get("a"))
#>  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"
#> [19] "s" "t" "u" "v" "w" "x" "y" "z"

get("mylist")[["a"]]
#>  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"
#> [19] "s" "t" "u" "v" "w" "x" "y" "z"

get("mylist")$a
#>  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"
#> [19] "s" "t" "u" "v" "w" "x" "y" "z"

get("a", envir = list2env(mylist))
#>  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"
#> [19] "s" "t" "u" "v" "w" "x" "y" "z"

Created on 2022-06-22 by the reprex package (v2.0.1)

Leave a Reply