尽管设置了数字选项,read_excel仍截断数字

lyn*_*123 2 r xlsx data-import readxl

read_excel()我正在尝试使用“readxl”包中的函数将 Excel 文件读入 R。Excel 文件中单元格中的数字保留 3 位小数,例如 0,684 1,338 74,296。在 R 数据框中,相同的数字是0,684 1,34 74,3。为什么只剩下3位数字了?

我已经设置了options(digits=5)(也尝试了不同的值)。

我也尝试过read_excel("file.xlsx", col_types = c("text", "text", "text"))(这给了我字符串:)74.296000000000006 1.3380000000000001 0.68400000000000005,然后使用 转换为数字as.numeric(),但数字再次被截断:0,684 1,34 74,3

如果您知道原因,请告诉我:)

JD *_*ong 5

小心不要混淆“有多少位数字”和“R 向您显示了多少位数字”。如果没有看到你的代码,很难确定,但我怀疑你正在打印一个小标题,如下所示:

library(readxl)
my_junk <- read_excel("~/Downloads/test.xlsx")
print(my_junk)
#> # A tibble: 3 x 1
#>    test
#>   <dbl>
#> 1 0.684
#> 2 1.000
#> 3 1.00
Run Code Online (Sandbox Code Playgroud)

tibbles 的默认打印方法仅显示几个有效数字。而且它似乎对 中的数字设置没有反应options。但是,如果我们将其转换为 data.frame,您会看到数字一直都在那里:

library(dplyr)
my_junk %>%
  data.frame %>%
  print( digits = 7)  
#>       test
#> 1 0.684000
#> 2 0.999950
#> 3 1.000001
Run Code Online (Sandbox Code Playgroud)

所以你的数字很可能在那里,只是没有显示。