0

我正在使用循环创建大量数据集,我需要确保所有这些不同的数据集都正确命名并存储在工作区中。我的问题如下。假设我有一个数据集(这里是空气质量),我想创建 4 个数据集并将它们存储在工作区中

拆分数据集

airquality$N<-letters[airquality$Month]
head(airquality)
AllDatasets<-split(airquality,airquality$N)
names(AllDatasets)

现在我想用循环提取每个数据集,例如

#Conceptual loop
for (i in (1:names(AllDatasets))){
#Create  dataset  AllDatasets[i] and name it    names(AllDatasets)[i]
  }

这样在循环之后我可以分别处理每个数据集(e、f、g、h、i)(我不想将相同的函数应用于所有数据集,我想将每个单独的函数独立存储在我的工作区中) . 我想这个问题不仅适用于循环,还涉及如何使用存储在字符串中的名称重命名数据集(而不是其列)。

4

1 回答 1

5

您可以使用list2env().

list2env(AllDatasets, .GlobalEnv)

现在e, f, g,hi在您的工作区中可用(在这种情况下为全局环境,如果您愿意,可以在第二个参数中指定不同的环境)。


要从字符串中分配名称,您可以使用assign(). 例如,回应 Marco 在下面的评论:

D <- data.frame(rnorm(1:10), rnorm(1:2))
Name <- 'ThatOne'
assign(Name, D)

或者直接用字符串:

assign('ThatOne', D)
于 2013-05-15T08:38:12.490 回答