让 R 获取列表元素的 assume/guess 个名称

Getting R to assume/guess names of list elements

在构建 list() 时,特别是大的,我想找到一种方法让 R 根据元素本身的名称猜测传递给列表的元素的名称。

例如,构造一个包含以下数据的列表:

dog <- c(1,2,3)
cat <- c(3,2,1)

我目前必须写的名字:

list(dog = dog, cat = cat)

有没有办法简单的写:

list(dog, cat)

其中根据元素名称自动猜测元素名称?

我们可以将 mgetls() 一起使用,如果这些是全局环境中唯一的对象

mget(ls())

如果全局环境还有其他变量,那么另一个干净的选择是创建一个新的环境,并在该环境中创建对象,然后用 [=16= 调用 ls 会更容易] 指定

e1 <- new.env()
e1$dog <- 1:3
e1$cat <- 3:1
mget(ls(envir = e1))

如果我们使用 purrr 中的 lst,它也会自动获取标识符

library(purrr)
lst(dog, cat)
#$dog
#[1] 1 2 3

#$cat
#[1] 3 2 1