Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

determining name of object loaded in R

Tags:

r

Imagine you have an object foo that you saved as saved.file.rda as follows:

foo <- 'a'
save(foo, file='saved.file.rda')

Suppose you load saved.file.rda into an environment with multiple objects but forgot the name of the object that is in saved.file.rda. Is there a way in R to determine that name?

You can do it the following way, which seems a little clunky:

bar <- load('saved.file.rda')
eval(parse(text=bar)) # this will pull up the object that was in saved.file.rda

However, is there a better way of doing this?

like image 414
andrewj Avatar asked Mar 26 '10 02:03

andrewj


2 Answers

Assuming there is only one object saved in saved.file.rda, about:

bar <- load('saved.file.rda')
the.object <- get(bar)

or just:

bar <- get(load('saved.file.rda'))

If you want to be "neat" and not pollute your global workspace with the stuff you loaded (and forgot the name of), you can load your object into an environment, and specify that environment in you call to get.

Maybe:

temp.space <- new.env()
bar <- load('saved.file.rda', temp.space)
the.object <- get(bar, temp.space)
rm(temp.space)
...
like image 72
Steve Lianoglou Avatar answered Oct 01 '22 17:10

Steve Lianoglou


As you can read in ?load you can load data to specified environment. Then you could use get and ls to get what you want:

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"
like image 42
Marek Avatar answered Oct 01 '22 17:10

Marek