R';s read.csv在第一列名称前加上垃圾文本
我已将数据从SQLServerManagementStudio中的结果网格导出到csv文件。 csv文件看起来是正确的 但是,当我使用read.csv将数据读入R数据框时,第一个列名前面会加上“ï..”。我如何摆脱这些垃圾文本 例如:R';s read.csv在第一列名称前加上垃圾文本,r,utf-8,byte-order-mark,R,Utf 8,Byte Order Mark,我已将数据从SQLServerManagementStudio中的结果网格导出到csv文件。 csv文件看起来是正确的 但是,当我使用read.csv将数据读入R数据框时,第一个列名前面会加上“ï..”。我如何摆脱这些垃圾文本 例如: str(trainData) 'data.frame': 64169 obs. of 20 variables: $ ï..Column1 : int 3232... $ Column2
str(trainData)
'data.frame': 64169 obs. of 20 variables:
$ ï..Column1 : int 3232...
$ Column2 : int 4242...
数据如下所示(没有什么特别之处):
第1栏、第2栏10011657710116577
100116698100116702
文件开头有一个Unicode UTF-8 BOM: 将文本解释为ISO-8859-1或ISO-8859-1的文本编辑器或web浏览器 CP1252将为此显示字符 R是给你i,然后把另外两个转换成点,因为它们是非字母数字字符 在这里: 邓肯·默多克建议: 如果需要,可以将文件声明为编码为“UTF-8-BOM” 在输入时忽略BOM表 因此,请使用
fileEncoding=“UTF-8-BOM”
尝试您的read.csv
,或者说服您的SQL wotsit不要输出BOM
否则,您也可以测试名字是否以
ï..
开头,并用substr
将其去掉(只要您知道您永远不会有一个真正以这样开头的列…该。
通常来自被
替换的空格。i
是csv的一部分吗?我只见过当colnames以数字开头时,X
被添加到colnames中。您可以显示输入数据的示例以及用于读取数据的read.table命令吗?您也可以使用regex将其替换为afterwordsnames(trainData)[1]我刚刚遇到了这个错误,通过将数据集复制到一个新的.csv文件中解决了它-列名前没有空格,我无法找到其他方法来摆脱这个symbolTried read.csv(“data.csv”,encoding=“UTF-8-BOM”),但仍然获得BOM。从SQLServerManStudio将结果保存到文件时,默认编码为UTF-8。将编码更改为ANSII并删除了BOM表。如果我创建一个包含BOM表的文件,我无法复制您的行为,因此可能是操作系统或windows版本的问题。如果输出中有任何非纯英语字符,使用ANSI(或ASCII?)编码只会产生问题。。。您可以发布一个示例文件吗?重要编辑:正确的参数是fileEncoding=
而不是encoding=
,它被read.csv
默认忽略。