如何将包含撇号的.csv文件读入R?

时间:2012-03-08 15:27:31

标签: r csv punctuation

我很难让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的新手,非常感谢任何帮助。

3 个答案:

答案 0 :(得分:34)

默认情况下,read.table会将单引号和双引号视为引号。您需要在quote="\""电话中添加read.table。或者,您可以使用read.csv,默认情况下只会将双引号视为引号。

答案 1 :(得分:8)

彻底研究中的选项?read.table从长远来看会有所回报。引用字符的默认值是quote =“\”'“,在R解析表达式,单引号和双引号之后,实际上只有两个字符。您可以使用quotes=NA将它们从考虑中移除。它是有时还需要删除'comment.char'默认为“#”,将'as.is'更改为TRUE可能有助于防止字符串转换为因子。

答案 2 :(得分:1)

设置参数quote =&#34; \\&#34;在read.table应该做的伎俩。