当header=TRUE时,将read.csv加载为句号的特殊字符

当header=TRUE时,将read.csv加载为句号的特殊字符,r,csv,R,Csv,我有一个\t分隔的.csv文件,第一行有列名,其他行有小数点。我正在尝试使用read.csv命令读取它,如下所示: x = read.csv("Export.csv", header = TRUE, sep = "\t", dec = ",") 例如,在输入文件Export.csv中 "$\{,}_" 45,2 这让我 <header>X....._</header> 45.2 我原以为它会将引用的值解释为字符串,将数字解释为数字 它正确地将45,2解释为一个数字,

我有一个\t分隔的.csv文件,第一行有列名,其他行有小数点。我正在尝试使用read.csv命令读取它,如下所示:

x = read.csv("Export.csv", header = TRUE, sep = "\t", dec = ",")
例如,在输入文件Export.csv中

"$\{,}_"
45,2
这让我

<header>X....._</header>
45.2
我原以为它会将引用的值解释为字符串,将数字解释为数字

它正确地将45,2解释为一个数字,但会弄乱除下划线以外的所有特殊字符

我认为这是一个编码问题,所以我尝试了几个不同的编码选项,得到了相同的结果

此外,如果我将header参数更改为TRUE,我将正确显示所有内容,但是所有数据都将被解释为字符串,并且正如预期的那样,第一行不是header

在这种情况下,如何将特殊字符加载到标题中


发布日期:RStudio版本0.98.501,R版本3.0.2 x64,OS:Win 7 x64。数据框中一列的所有元素必须具有相同的类型。所以,当你试图阅读一个专栏时,它必须猜测你想要哪一个。在第二个示例中,它读取第一行作为标题,然后猜测该列是数字。然后它会损坏名称,因为check.names设置为TRUE,并且您的头名称不是有效名称。这可能会导致问题,因此它会尝试修复它

在第一个示例中,它读取第一行,猜测它是一个字符,因为它不是一个数字,然后整个列变成一个字符

如果要在该列中读取$\{,}\作为标题名,可以执行以下操作:

read.table(
textConnection('\"$\\{,}_\"
45,2'),header=TRUE,check.names=FALSE,dec=',')
如果要读入此数据,并将元素转换为数字或字符,则必须将其作为字符读入,然后自己进行转换,将元素放入列表中