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

Dan*_*ral 14 byte-order-mark r utf-8

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

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

例:

str(trainData)

'data.frame':   64169 obs. of  20 variables:    
 $ ï..Column1             : int  3232...   
 $ Column2                : int  4242...
Run Code Online (Sandbox Code Playgroud)

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

Column1,Column2
100116577,100116577
100116698,100116702

Spa*_*man 36

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

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

将文本解释为ISO-8859-1或CP1252的文本编辑器或Web浏览器将显示字符

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

这里:

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

邓肯默多克建议:

如果要忽略输入上的BOM,可以声明文件编码为"UTF-8-BOM"

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

否则你也可以测试一下这个名字是否以ï..并将其剥离substr(只要你知道你永远不会有一个像真正那样开始的专栏......)

  • 重要的编辑:正确的arg是`fileEncoding =`不`encoding =`,`read.csv`会默默忽略它. (6认同)
  • 尝试使用read.csv(“ data.csv”,encoding =“ UTF-8-BOM”),但仍获取BOM。将结果从sql server man studio保存到文件时,默认编码为UTF-8。将编码更改为ANSII,并删除了BOM。 (2认同)