2012-03-08 14 views
28

アポストロフィが含まれている.txtファイルまたは.csvファイルをRに読み込むのが難しいです。Rにアポストロフィを含む.csvファイルを読み取るにはどうすればよいですか?

私の列の中には、「顧客のニーズへの出席」や「セキュリティ担当者の代理」などの記述テキストが含まれているものがあります。私のファイルはExcelで正しく開きます(つまり、すべてのデータが正しいセルに表示されます; 3列と約8000行があり、データが欠落していません)。私は、ファイルを読むためにRを要求したときしかし、これは何が起こるかです:

data <-read.table("datafile.csv", sep=",", header=TRUE) 
    Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
    line 520 did not have 3 elements 

(520行にアポストロフィが含まれている最初の行である。)

私は.txtファイルまたは.csvファイルに行けばすべてのアポストロフィを手動で削除すると、Rはファイルを正しく読み取ります。しかし、もし私ができるなら、私はむしろアポストロフィを保つだろう。

私はRが新しく、助けに感謝します。

+0

私は基本的にこれを知っていたにもかかわらず、データ取得マシンで生成されたcsvファイルを読むときに "gotcha'd"を取得しましたが、問題は、むしろ大きなヘッダーブロックの内側にファイルにいくつかのフィールドがあります(予期せぬ事象)。ソースファイル内のcrapolaを注意深く見てください。 –

答えて

31

デフォルトでは、read.tableは引用符で囲んだ一重引用符と二重引用符を表示します。 read.tableコールにquote="\""を追加する必要があります。あるいは、ダブルクォートをデフォルトで引用文字として見るだけのread.csvを使うこともできます。

+1

ご協力ありがとうございます。興味深いことに、あなたやDWinがread.tableのために提案したオプションを得ることができませんでした...しかし、read.csvはトリックです! – user1257313

+0

'read.csv'との相違点は、デフォルト設定が' fill = TRUE'です。 –

8

?read.tableのオプションを徹底的に検討することは、長期的には効果的です。引用符のデフォルト値はquote = "\" '"です。これは実際にはRがその式、一重引用符、二重引用符を解析した後の2文字だけで、quotes=NAを使用して両方を取り除くことができます。要因に変換取得から文字列を防ぐために、TRUEに「as.is」「#」をデフォルト「comment.char」を削除し、変更することが役に立つかもしれません。

+4

最新のバージョンでは 'quote = NULL'ではなく' quotes = NA'となるはずです。 – JayCo

+0

私は同じ問題がありましたが、インポートされたリストに残っていなければならない引用符を含むリストをインポートしようとしました。引用符= NULLを使用して私のために働いた(引用符= "\\"と答えたように)私は実際の答えではなく、 "ヘルプマニュアルを読んで、うまくいけばそれを見つけることができます" < - read.table( "datafile.txt"、quote = NULL)と引用符はうまくいきました –

1

のパラメータ引用=「\\」を設定します

+1

まあ、そうかもしれませんが、あなたは何をやっているのか分かりますか? –

関連する問題