代码显示为:

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")

我想知道为什么会发生这种情况以及如何解决?

最佳答案

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

parse_double() 的帮助页面没有说它不会忽略分组标记,但它没有说它会......

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

(最后出现的额外数字是因为这个数字不能用 double 浮点精确表示)

关于r - 使用 readr::parse_double() 解析双分组数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47487424/

10-12 17:44