使用read_csv2函数读取文件时无法识别双精度
我使用软件包readr。当我使用分号分隔符读取csv文件时:使用read_csv2函数读取文件时无法识别双精度,r,readr,R,Readr,我使用软件包readr。当我使用分号分隔符读取csv文件时: library(readr) read_csv2("A;B\n1.3;alpha\n2.345;beta", col_types = "dc") 以下是我得到的答案: Warning: 2 parsing failures. row col expected actual 1 A no trailing characters .3 2 A no trailing character
library(readr)
read_csv2("A;B\n1.3;alpha\n2.345;beta", col_types = "dc")
以下是我得到的答案:
Warning: 2 parsing failures.
row col expected actual
1 A no trailing characters .3
2 A no trailing characters .345
A B
1 NA alpha
2 NA beta
换句话说,数字1.3和2.345无法识别。
使用逗号分隔符,一切正常:
read_csv("A,B\n1.3,alpha\n2.345,beta", col_types = "dc")
A B
1 1.300 alpha
2 2.345 beta
你能复制这个吗?你知道它是从哪里来的吗?
谢谢你的帮助
以下是我的会话信息:
sessionInfo()
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] readr_0.2.2
loaded via a namespace (and not attached):
[1] Rcpp_0.12.4
tyr定义分隔符以告诉R要查找的内容: 图书馆(readr)
read_csv2(“A;B\n1.3;alpha\n2.345;beta”,col_types=“dc”,sep=“;”)
这将告诉它继续前进 实际上,您应该使用带有选项的
read_delim()
,delim=“;”
:
从
?read.csv2
:“使用;
作为分隔符,而不是,
。这在使用,
作为小数分隔符的欧洲国家很常见。“也许可以直接尝试read_delim(…,delim=“;”)
?当小数点是,它确实能很好地识别双精度,
@HubertL yes。但我认为readr包中的read_xxx函数能够自动检测十进制分隔符,因此我希望read_csv2(“A;B\n1.3;alpha\n2.345;beta”,col\u types=“dc”)它实际上似乎是一个bug,因为它没有考虑区域设置sep
不是read\u csv2
的参数(我不是说read.csv2
),完全正确,我的坏!我不应该工作到这么晚,不戴眼镜看书!我的拼写也很糟糕!
library(readr)
read_delim("A;B\n1.3;alpha\n2.345;beta", col_types = "dc", delim = ";")