17

大きなタブ区切りファイルをRに読み込もうとしています。

最初に私はこれを試しました:

data <- read.table("data.csv", sep="\t")

しかし、それはいくつかの数値変数を要因として読み取っています

そこで、各変数を次のようにしたいタイプに基づいてデータを読み込もうとしました。

data <- read.table("data.csv", sep="\t", colClasses=c("character","numeric","numeric","character","boolean","numeric"))

しかし、これを試してみると、エラーが発生します。

scan(file、what、nmax、sep、dec、quote、skip、nlines、na.strings、:scan()expected'a real'、got'"4"'のエラー

元のrawファイルの一部の数値が引用符で囲まれている可能性があると思いますが、よくわかりません。

4

2 に答える 2

8

データが表示されない場合、次のいずれかが発生します。データを区切るすべてのタブがありません。単一の観測に埋め込まれたタブがあります。または他のリトネー。

これを整理する方法はoptions(stringsAsFactors=FALSE)、最初の行を設定してから使用することです。

チェックアウトしてstr(data)、どの行が原因であるかを把握してみてください。一部の数値が因子として読み取られている理由は、その列に R が文字として解釈している何かがあり、列全体を文字に強制するためです。通常は掘り下げる必要がありますが、問題はほぼ確実に入力ファイルにあります。

これは一般的なデータ変更の問題です。頑張ってください!

于 2012-07-26T18:46:22.390 に答える
1
x <- paste("'",floor(runif(10,0,10)),"'",sep="")
x

 [1] "'7'" "'3'" "'0'" "'3'" "'9'" "'1'" "'4'" "'8'" "'5'" "'8'"

as.numeric(gsub("'", "",x))

 [1] 7 3 0 3 9 1 4 8 5 8
于 2012-07-26T21:37:19.530 に答える