使用 readr::parse_double() 解析双分组数字
Parsing double grouped number with readr::parse_double()
代码显示为:
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
The grouping mark specified by the locale is ignored inside the number.
parse_double()
的帮助页面没有说明 没有 忽略分组标记,但也没有说明...
print(parse_number("123,456,789.987"),digits=20)
## [1] 123456789.98700000346
(最后多出的数字是因为这个数不能用双精度浮点数精确表示)
代码显示为:
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
The grouping mark specified by the locale is ignored inside the number.
parse_double()
的帮助页面没有说明 没有 忽略分组标记,但也没有说明...
print(parse_number("123,456,789.987"),digits=20)
## [1] 123456789.98700000346
(最后多出的数字是因为这个数不能用双精度浮点数精确表示)