使用read_csv2函数读取文件时无法识别双精度

使用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

我使用软件包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 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 = ";")