2012-04-24 16 views
0

私は、sink() - "file.txt"によって作成されたファイルに書かれたリストを持っています。このファイルには、次のようになりつのリストが含まれ、それが唯一のnumersが含まれていますRのファイルからリストを読み込む方法は?

[[1]] 
[1] 1 2 
[[2]] 
[1] 1 2 3 

なファイルからリストなどのデータを読み込む方法?

EDITION: 私は'[[*]]'を削除し、特殊記号で'[*]'を代用するためにいくつかの正規表現を使用し、その後、それを文字列として読み込むしようとするつもりだ - それは'@'とします。次に、すべての部分文字列を'@'の間に置き、ベクトルに分割して空のリストに入れます。

+0

これは人間が読める形式のオブジェクトですエラーが発生しやすくなります。 'save' /' load'を使うか、 'RJSONIO'パッケージから' toJSON'/'fromJSON'を使いたい場合は、オブジェクトとして保存するほうが安全で簡単です。 –

+0

私はそれを知っていますが、誰かが(シンク()を使って)リストをそのように保存して、今度はそれをリストとして再度読まなければならないという問題があります。 – Qbik

答えて

1

このようなものは、このトリックを行う必要があります。 (正確な詳細は異なる場合がありますが、少なくともこれで作業するアイデアが得られます)

l <- readLines("file.txt") 

l2 <- gsub("\\[{2}\\d+\\]{2}", "@", l)   # Replace [[*]] with '@' 
l3 <- gsub("\\[\\d+\\]\\s", "", l2)[-1]   # Remove all [*] 
l4 <- paste(l3, collapse=" ")     # Paste together into one string 
l5 <- strsplit(l4, "@")[[1]]     # Break into list 
lapply(l5, function(X) scan(textConnection(X))) # Use scan to convert 2 numeric 
# [[1]] 
# [1] 1 2 
# 
# [[2]] 
# [1] 1 2 3 
関連する問題