2011-12-19 1 views
2

read.csv()を使用してR(Linux上)のCSVファイルを読み込もうとしています。関数が完了すると、Rで読み込まれる行の数がCSVファイルの行の数よりも少ないことがわかります(wc -lによって取得されます)。また、その特定のCSVファイルを読むたびに、常に同じ行がスキップされています。私はCSVファイルの書式設定エラーをチェックしましたが、すべてがうまく見えました。Rプログラミング:read.csv()が予期せず行をスキップする

しかし、私が別のCSVファイルにスキップされている行を抽出すると、Rはそのファイルから非常に大きな行を読み取ることができます。

私の問題がどこにあるかはわかりません。どんな助けでも大歓迎です。

+2

おそらく、問題を再現できるようにデータを投稿することができますか? –

+0

ここに、私が読もうとしているCSVファイルへのリンクがあります - http://dl.dropbox.com/u/6967747/bugs.csv –

+1

'quote =" "'; '?read.csv'を参照してください –

答えて

11

ここでは、count.fieldsを使用してどこを見て修正を適用するかの例を示します。 (「#」、ハッシュサインを)

txt <-readLines("~/Downloads/bugs.csv")[ 
       which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23)] 

そして、彼らはoctothorpesを持っていた:私は23を見

> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",")) 
    2  23  30 
    502  10 136532 
> table(count.fields("~/Downloads/bugs.csv", sep=",")) 
# Just wanted to see if removing quote-recognition would help.... It didn't. 
    2  4  10  12  20  22  23  25  28  30 
11308  24  20  33 642 251  10  2 170 124584 
> which(count.fields("~/Downloads/bugs.csv", quote="", sep=",") == 23) 
[1] 104843 125158 127876 129734 130988 131456 132515 133048 136764 
[10] 136765 

:あなたは幅23「のフィールド」はラインのささやかな数を持っていますRデータの注釈のコメント文字です。

> table(count.fields("~/Downloads/bugs.csv", quote="", sep=",", comment.char="")) 
    30 
137044 

だから.... read.tableでこれらの設定を使用すると、あなたは「行ってもいい」でなければなりません。

+0

'count.fields'のデモです。 –

+0

すごく面白いです! –

関連する問題