4

Rでは、約42,900行の基本的なCSVファイルを読み込もうとしています(Unixのwc -lで確認済み)。関連するコードは

vecs <- read.csv("feature_vectors.txt", header=FALSE, nrows=50000)

ここで、nrowsは少し過大評価されています。でも、

>> dim(vecs)
[1] 16853     5

結果のデータフレームが17,000行のオーダーであることを示します。これはメモリの問題ですか?各行は、最大30文字のハッシュコード、最大30文字の文字列、および3つの整数で構成されているため、ファイルの合計サイズはわずか約4MBです。

関連する場合は、多くの行に欠落しているフィールドがあることにも注意する必要があります。

ご協力いただきありがとうございます!

4

2 に答える 2

4

この種の問題は、多くの場合、を使用して簡単に解決できます。count.fieldsこれにより、を呼び出した場合に結果のデータフレームに含まれる列の数がわかりますread.csv

(n_fields <- count.fields("feature_vectors.txt"))

n_fieldsのすべての値が同じでない場合は、問題があります。

if(any(diff(n_fields)))
{
  warning("There's a problem with the file")
}

n_fieldsその場合、予想とは異なる値を見てください。問題はこれらの行で発生します。

ジャスティンが述べたように、一般的な問題は不一致の引用符です。CSVファイルを開き、そこで文字列がどのように引用されているかを確認します。次に、引数read.csvを指定して、を呼び出します。quote

于 2012-07-04T13:15:32.690 に答える
3

私の推測では、あなたは比類のないものを埋め込んでいます"。したがって、一部の行は実際には本来よりもはるかに長くなっています。確認したいことがありますapply(vecs, 2, function(x), max(nchar(as.character(x)))

于 2012-07-04T14:40:52.833 に答える