我只想使用变量的对象作为要保存的对象的名称。例如:
y <- matrix(1:30,nrow=5)
name <- "CHLYT"
save(assign(name,y), file="J:/毕业设计/newdata/test.RData")我希望使用存储在变量" name“中的名称保存名为"CHLYT”的变量"y“。我不想使用save(CHLYT,file="")。当我打开文件"test.RData“时,我希望在我的环境中看到一个变量"CHLYT”。
发布于 2015-04-08 06:26:32
您可以使用一个环境来完成这个任务。(你也可以在全球环境中这样做,但我认为这样做更干净。)
e <- new.env() # create new environment
assign(name, y, envir = e) # assign into that environment
save(list=name, envir = e, file="test.RData") # save from environment
rm(list=ls(all=TRUE)) # remove everything (for demonstration)
ls()
# character(0)
load("test.RData") # reload
ls()
# [1] "CHLYT"
CHLYT
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 1 6 11 16 21 26
# [2,] 2 7 12 17 22 27
# [3,] 3 8 13 18 23 28
# [4,] 4 9 14 19 24 29
# [5,] 5 10 15 20 25 30注意list和envir参数在save()中的使用。list将对象名称的向量作为字符串;这允许您在save中使用name变量。envir参数告诉save在新的e环境中查找命名的objects...in (这个例子)。
当loading时,y对象现在有了新的对象名,默认情况下它被加载到.GlobalEnv中。
https://stackoverflow.com/questions/29507088
复制相似问题