Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R';s read.csv在第一列名称前加上垃圾文本_R_Utf 8_Byte Order Mark - Fatal编程技术网

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

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

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

但是,当我使用read.csv将数据读入R数据框时,第一个列名前面会加上“ï..”。我如何摆脱这些垃圾文本

例如:

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将其替换为afterwords
names(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
默认忽略。