R的read.csv在第一列名称前加上垃圾文本

时间:2014-07-04 06:33:18

标签: r utf-8 byte-order-mark

我已将数据从SQL Server Management Studio中的结果网格导出到csv文件。 csv文件看起来正确。

但是当我使用read.csv将数据读入R数据帧时,第一列名称前缀为“ï.. ”。我如何摆脱这个垃圾文本?

示例:

str(trainData)

'data.frame':   64169 obs. of  20 variables:    
 $ ï..Column1             : int  3232...   
 $ Column2                : int  4242...

数据看起来像这样(没什么特别的):

列1,列2
100116577,100116577
100116698,100116702

1 个答案:

答案 0 :(得分:27)

您在文件的开头有一个Unicode UTF-8 BOM:

http://en.wikipedia.org/wiki/Byte_order_mark

  

文本编辑器或Web浏览器,将文本解释为ISO-8859-1或   CP1252将为此

显示字符

R为您提供ï,然后将其他两个转换为点,因为它们是非字母数字字符。

下面:

http://r.789695.n4.nabble.com/Writing-Unicode-Text-into-Text-File-from-R-in-Windows-td4684693.html

邓肯默多克建议:

  

如果您愿意,可以声明文件编码为“UTF-8-BOM”   忽略输入上的BOM

请尝试使用read.csv fileEncoding="UTF-8-BOM"或说服您的SQL wotsit不输出BOM。

否则你也可以测试名字是否以ï..开头,并用substr剥离它(只要你知道你永远不会有一个真正开始的专栏...... 。)