web-dev-qa-db-ja.com

アポストロフィを含む.csvファイルをRに読み込む方法は?

Rにアポストロフィを含む.txtまたは.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を初めて使用するので、どんな助けにも感謝します。

34
user1257313

デフォルトでは、read.tableは、単一引用符および二重引用符を引用文字と見なします。追加する必要がありますquote="\""からread.table呼び出し。または、read.csv。デフォルトでは、二重引用符のみが引用文字として認識されます。

35
Joshua Ulrich

?read.tableのオプションを徹底的に研究することは、長期的に見れば報われるでしょう。文字の引用符のデフォルト値はquote = "\" '"です。これは、Rが式を解析した後の実際の2文字のみである、単一引用符と二重引用符です。quotes=NAを使用して、両方を考慮から削除できます。また、「comment.char」をデフォルトで「#」に削除する必要がある場合もあります。「as.is」をTRUEに変更すると、文字列が因子に変換されないようにするのに役立ちます。

8
42-

Read.tableでパラメータquote = "\\"を設定すると、うまくいくはずです。

1
Aarti Kumar