2012-03-20 15 views
4

私は#という記号をデリミタとして持つデータファイルを持っています。これはread.fileコマンドで読みたいものです。Read.table '#'を区切り記号として使用しても機能しませんか?

まずは、それは大きなデータファイルだとので、私は区切り文字を変更したくない:すでにデータに存在する別の区切り文字(注を使用するリスクが

  1. :確認することができますが、ポイント2は、これは少し作ります少し複雑)
  2. 私は区切り文字としてすべての#記号でこれらのデータファイルの多くを期待するので、私はデータを変更したくない私は再びこれらのファイルを読むために
を希望するたびにファイル

read.fileコマンドのsep引数を使用できると仮定しました。しかし、私が期待したように#サインではうまくいかなかった。最初の列のみが読み込まれます。私は#符号を除いて、すべて別々のデリミタを試しました。区切り文字の#など、いくつかの例については以下を参照してください。

ファイルは次のようになります。Rで

H1#H2#H3 
a#b#c 
d#e#f 

コードは、私は区切り文字を変更し、同じファイルのために、結果を含む行いました。 #ため=|@$それがうまく動作しますが、ない...について

> read.table(file='test_data.dat', check.names=F, sep='=', header=T) 
H1 H2 H3 
1 a b c 
2 d e f 
> read.table(file='test_data.dat', check.names=F, sep='|', header=T) 
H1 H2 H3 
1 a b c 
2 d e f  
> read.table(file='test_data.dat', check.names=F, sep='@', header=T) 
H1 H2 H3 
1 a b c 
2 d e f 
> read.table(file='test_data.dat', check.names=F, sep='$', header=T) 
H1 H2 H3 
1 a b c 
2 d e f 
> read.table(file='test_data.dat', check.names=F, sep='#', header=T) 
H1 
1 a 
2 d 

は誰がこの上で私を助けてもらえますか? これは既知の「バグ」ですか?回避策はありますか?

ありがとうございました!

答えて

8

コメント文字も#あるので、あなたのようなものが必要です:

read.table(file='tmp.txt', check.names=FALSE, sep='#', 
      header=TRUE, comment.char="@") 
+0

感謝を!それは動作します...しかし、私はまだ新しい定義されたコメント文字がファイルで使用されていないことに注意する必要があります:)(ファイルを変更する方がはるかに優れていますが) – FBE

+0

'comment.char'を空白( '' '')。 –

+0

@FBE:本当ですが、通常は自分のデータファイルについて少し知っていますが、ユニコードシーケンスのどの部分がファイル内に決してないかについて公正な推測をすることができます:-)。 –

関連する問題