2011-01-28 13 views

答えて

4
attach(file);ls(pos=2);detach(pos=2) 

これで解決できます。多分。 #untested

+0

'切り離す()'デフォルトでは、検索パス内の第2項目を切り離しので、あなたは、detach' ''でPOSを= 2'省略することができます。 – aL3xa

+1

私はリプレイの提案を、私が私の例として使用したかなり大きなデータセットをロードするので、私がアーカイブで見つけて提出しなかったことをテストしました。 –

+0

@DWinどのような解決策ですか? URL? – Spacedman

6

私はあなたがオブジェクトをロードせずにそうすることはできないと思います。

ラップを使用してRオブジェクトをsaveに保存すると、オブジェクトとオブジェクトの構造が特別なRdataファイルに保存されます。その後、特別なバイナリファイルをラッパーでloadにロードすることができます。ここでは、データの構造だけをリストすることができます。

私は非常に基本的なパッケージであるsavesという名前で、これをCRANで見つけることができました。


アップデート:私はsave.lsの代わりにテストするload.lssaveと負荷と非常にシンプルなメタデータ・ソリューション

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) 
} 

保存を作りました。メタ情報は別ファイル(「ls」で終わる)に保存されますが、そのメカニズムは簡単に改善できます。 Rdataオブジェクトとメタデータを含むファイルのtarアーカイブ(上記のリンク先のパッケージと同様)を作成します。

+0

メタデータソリューションは理にかなっています。私はRのデータファイルに関する豆を知らず、彼らが内部のメタデータを持っているかもしれないと思った –

+0

@JDロング:私が想像できる唯一の方法です。私は私が何を意味するかを示すために上記の答えで原始的な例を作り上げました。しかし、このデモ機能は実際には実用化の準備ができていません:) – daroczig

+3

Rのメタデータソリューションは既に存在し、遅延読み込みと呼ばれています - http://stackoverflow.com/を参照してください。質問/ 8700619/get-specific-object-from-rdata-file –

2

R v3.0.1では、load()関数に新しい引数が追加されました。 RDataファイルを読み込んで

load("mydata.RData", verbose=TRUE) 

という名前のオブジェクトがロードされます。もちろん、それでもオブジェクトをロードする必要があります。たぶん

1

load("myDataFile.RData",ex<-new.env()) 
content=ls.str(ex) 
関連する問題