我有时会print( load( "myDataFile.RData" ) )
在加载数据文件时列出数据文件的内容.有没有办法列出内容而不加载数据文件中包含的对象?
我不认为你可以在没有加载对象的情况下做到这一点.
解决方案可以是使用包装器保存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存档(就像我在上面链接的包中所做的那样).
attach(file);ls(pos=2);detach(pos=2)
Run Code Online (Sandbox Code Playgroud)
那就行了.大概.#untested