R中的小数没有正确读取



我试图得到整个数字193525.0768,但它去掉了小数(?(。请向我解释一下。

df <- tibble(
x = "193525.0768"
) %>% 
mutate(x = as.numeric(x))
print(df, digits = 10) # decimals removed. I expect it to maintain the decimals numbers
# A tibble: 1 x 1
x
<dbl>
1 193525.
df[1,1][[1]] # decimals removed
# 193525
x <- "193525.0768"
print(as.numeric(x), digits = 10) # decimals not removed
# 193525.0768

您有打印问题,而不是读入问题。tibble print方法不接受数字参数-有关详细信息,请参阅?print.tbl。您可以显式使用print.data.frame来绕过tibble打印方法,转而使用data.frame打印方法,该方法需要digits参数:

tibble(x = "193525.0768") %>% 
mutate(x = as.numeric(x)) %>% 
print.data.frame(digits = 10)
#             x
# 1 193525.0768

或者,您可以使用pillar.sigfig选项(在?print.tbl中提到(更改默认值。默认值是3,这很令人困惑,因为如果我真的这么认为,我预计193525.0768将打印为194000……pillar包中可能有文档解释了原因。

options(pillar.sigfig = 10)
tibble(x = "193525.0768") %>%
mutate(x = as.numeric(x))
#             x
# 1 193525.0768

或者,使用数据帧而不是tibble:

data.frame(x = "193525.0768") %>% 
mutate(x = as.numeric(x)) %>% 
print(digits = 10)
#             x
# 1 193525.0768

最新更新