webdevqa.jp.net

Rへのタブ区切りデータの読み取り

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

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

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

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

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

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

しかし、これを試すとエラーが発生します:

スキャンのエラー

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

16
Ford

データが表示されない場合、いくつかあることがあります。データを区切るすべてのタブがあるわけではありません。単一の観測には埋め込みタブがあります。または他の人のリトネ。

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

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

これは一般的なデータ変更の問題です。幸運を祈ります!

8
Justin
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
1
Michael