我正在使用循环创建大量数据集,我需要确保所有这些不同的数据集都已正确命名并存储在工作区中。我的问题如下。假设我有一个数据集(这里是空气质量),我想创建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)(我不想对所有数据集应用相同的函数,我想独立地存储每个数据集)我的工作区)。我想问题不仅仅适用于循环,而是关于如何使用存储在字符串中的名称重命名数据集(而不是其列)。
答案 0 :(得分:4)
您可以使用list2env()
。
list2env(AllDatasets, .GlobalEnv)
现在e
,f
,g
,h
和i
在您的工作区中可用(在这种情况下,全局环境中,您可以指定不同的如果你喜欢,第二个参数中的环境)。
要从字符串中指定名称,您可以使用assign()
。例如。回应Marco的评论如下:
D <- data.frame(rnorm(1:10), rnorm(1:2))
Name <- 'ThatOne'
assign(Name, D)
或直接使用字符串:
assign('ThatOne', D)