从对象名称向量中列出许多对象

Max*_*een 3 r

TL;DR:我需要的是list().

我正在尝试创建一个对象列表。我不知道会有多少对象或它们会被称为什么,而且可能有很多。所以我不能只是手工列出一个清单。

但是,我知道当需要制作列表时,所有对象都将存在于我的环境中,并且我知道我将有一个包含所有对象名称的字符向量。

(这些是我试图避免变得更大的可怕的三层 for 循环的输出。我可以创建一个空列表,然后在循环创建对象时为其分配对象,但我不想这样做.)

我已经搜索过 Google 和 Stack Overflow,但找不到好的解决方案。在我看来,我需要的是一个向量化版本list():某种东西,它将采用对象名称的向量,找到所有这些对象并将它们放入一个列表中。

list(obj1, obj2, obj3) # Not this. I don't want to name each element individually.

objectsVector <- c("obj1", "obj2", "obj3")
list_vectorised(elements = objectsVector) # I want this instead. 

namesVector <- c("anObject", "anotherObject", "yetAnotherObject")
list_vectorised(elements = objectsVector, names  = namesVector) # Or better still, this. 
Run Code Online (Sandbox Code Playgroud)

d.b*_*d.b 11

您可以使用mget从环境中获取对象并将它们放入列表中。

mget(VECTOR_OF_NAMES_OF_OBJECTS)
Run Code Online (Sandbox Code Playgroud)

您还可以结合mget使用,ls()这样您就不必键入您自己的对象名称。

obj1 = 1:2
obj2 = 3:7
obj13 = 8:11

mget(ls(pattern = "obj\\d+"))
#$obj1
#[1] 1 2

#$obj13
#[1]  8  9 10 11

#$obj2
#[1] 3 4 5 6 7
Run Code Online (Sandbox Code Playgroud)