用readr :: parse_double()解析双重分组数

时间:2017-11-25 15:10:04

标签: r tidyverse readr

代码显示为:

readr::parse_double("123,456,789.987", 
                    locale = locale(decimal_mark = ".", 
                                    grouping_mark = ","))

预期结果为:123456789.987
但事实证明这会引发错误:

1 parsing failure.
row # A tibble: 1 x 4 col     row   col               expected       actual 
expected   <int> <int>                  <chr>        <chr> actual 1     1    
NA no trailing characters ,456,789.987
[1] NA
attr(,"problems")

我想知道为什么会这样,以及如何解决它?

1 个答案:

答案 0 :(得分:2)

我不确定,但看起来你需要parse_number:来自?parse_number

  

在数字中忽略语言环境指定的分组标记。

parse_double()的帮助页面并没有说没有忽略分组标记,但它并没有说它确实...... < / p>

print(parse_number("123,456,789.987"),digits=20)
## [1] 123456789.98700000346

(结尾处的额外数字是因为这个数字不能用双精度浮点精确表示)