Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

listing contents of an R data file without loading

Tags:

I sometimes use print( load( "myDataFile.RData" ) ) to list the contents of a data file when I load it. Is there a way to list the contents without loading the objects contained in the data file?

like image 438
JD Long Avatar asked Jan 28 '11 17:01

JD Long


1 Answers

I do not think you could do that without loading the object.

A solution could be to save the R objects with a wrapper to save, which function would save the object AND the structure of the object to a special Rdata file. Later you could load the special binary file with a wrapper to load, where you could specify to only list the structure of the data.

I have done something like this in a very basic package, named saves, can be found on CRAN.


Update: I made up a very simple metadata solution

save.ls <- function(x, file) {
    save(list=x, file=file)
    l <- ls()
    save(l, file=paste(file, 'ls', sep=''))
}
load.ls <- function(file) {
    attach(paste(file, 'ls', sep=''));
    return(l)
    detach(pos=2)
}

Save with save.ls instead of save and load with load.ls to test. Meta information is saved in separate file (ending in "ls"), but the mechanism could be improved easily e.g. making a tar archive (like I do in the package linked above) of the Rdata object and the file containing the metadata.

like image 136
daroczig Avatar answered Oct 24 '22 03:10

daroczig