列出R数据文件的内容而不加载

JD *_*ong 21 r

我有时会print( load( "myDataFile.RData" ) )在加载数据文件时列出数据文件的内容.有没有办法列出内容而不加载数据文件中包含的对象?

dar*_*zig 6

我不认为你可以在没有加载对象的情况下做到这一点.

解决方案可以是使用包装器保存R对象save,该函数将对象和对象的结构保存到特殊的Rdata文件中.稍后您可以使用包装器加载特殊二进制文件load,您可以在其中指定仅列出数据结构.

我在一个非常基本的包中做了类似的事情,名为save,可以在CRAN上找到.


更新:我编写了一个非常简单的元数据解决方案

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)
}
Run Code Online (Sandbox Code Playgroud)

保存save.ls而不是save和加载load.ls来测试.元信息保存在单独的文件中(以"ls"结尾),但可以很容易地改进机制,例如在Rdata对象和包含元数据的文件中创建tar存档(就像我在上面链接的包中所做的那样).

  • R中的元数据解决方案已经存在并被称为延迟加载 - 请参阅http://stackoverflow.com/questions/8700619/get-specific-object-from-rdata-file (3认同)

Spa*_*man 5

attach(file);ls(pos=2);detach(pos=2)
Run Code Online (Sandbox Code Playgroud)

那就行了.大概.#untested

  • 是的,`attach()`确实会调用`load()`是没有区别的,您也可以简单地使用`local(load(file))`获得相同的结果。 (2认同)