想象一下,你有一个foo你保存的对象saved.file.rda如下:
foo <- 'a'
save(foo, file='saved.file.rda')
Run Code Online (Sandbox Code Playgroud)
假设您加载saved.file.rda到具有多个对象的环境中但忘记了所在对象的名称saved.file.rda.R中有没有办法确定这个名字?
您可以通过以下方式执行此操作,这看起来有点笨重:
bar <- load('saved.file.rda')
eval(parse(text=bar)) # this will pull up the object that was in saved.file.rda
Run Code Online (Sandbox Code Playgroud)
但是,有没有更好的方法呢?
Ste*_*lou 19
假设只保存了一个对象saved.file.rda,关于:
bar <- load('saved.file.rda')
the.object <- get(bar)
Run Code Online (Sandbox Code Playgroud)
要不就:
bar <- get(load('saved.file.rda'))
Run Code Online (Sandbox Code Playgroud)
如果您希望"整洁"并且不会使用您加载的内容污染全局工作区(并忘记名称),则可以将对象加载到环境中,并指定您调用的环境get.
也许:
temp.space <- new.env()
bar <- load('saved.file.rda', temp.space)
the.object <- get(bar, temp.space)
rm(temp.space)
...
Run Code Online (Sandbox Code Playgroud)
您可以阅读,?load可以将数据加载到指定的环境.然后你可以使用get并ls获得你想要的东西:
tmp_env <- new.env()
load('saved.file.rda', tmp_env)
get(ls(tmp_env), envir=tmp_env) # it returns only first object in environment
# [1] "a"
Run Code Online (Sandbox Code Playgroud)