我已将数据从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
答案 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
剥离它(只要你知道你永远不会有一个真正开始的专栏...... 。)