我有一个手动创建的对象列表,如下所示:

rand1 <- rnorm(1e3)
rand2 <- rnorm(1e6)

myObjects <- NULL
myObjects[[1]] <-rand1
myObjects[[2]] <-rand2
names(myObjects) <- c("rand1","rand2")

我正在研究一些将对象 bundle 在一起并放在S3中的代码。然后,我在EC2中有想要捕获myObjects列表并自动“解除 bundle ”的代码。在此示例中,列表只有两个对象,并且名称是已知的,但是我该如何编码以处理任何长度和名称的列表?
#pseudo code
for each thing in myObjects
  thing <- myObjects[[thing]]

我还不太清楚如何将名称(myObjects)[1]转换为对象的名称,然后为其分配myObjects [[1]]的内容。我可以处理循环,但是创建每个对象有点让我感到困惑。我敢肯定这很简单,但是我不太理解。

最佳答案

您可以使用assign:

for(i in 1:length(myObjects)) assign(names(myObjects)[i], myObjects[[i]])

08-20 00:16