如何在 R 中使用 read.csv、read_csv 或 read_excel 读取数据时指定数值的数字



我正在尝试将地理纬度和经度读取到R中。这些地理数据通常是超过 6 位的数值。我试图在"read_excel"包中读取带有 read_excel(( 的 excel 文件,并在基本 R 中读取.csv在"readr"包中读取read_csv((。但是,上述函数都无法正确读取这些数据而不会丢失信息。所有这些函数无一例外地只能读取截断为 4 位或 5 位的数值。我还尝试使用"选项(数字= 8("在读取数据之前指定默认数字,但它不起作用。在这里,我为"readr"包中的read_csv((函数做了一个可重现的示例:

read_csv("112.8397456,35.50496106n112.583984,37.8519194n112.5826569,37.8602818", col_names = FALSE)

系统会自动截断 5 位数字的数据:

# A tibble: 3 × 2
        X1       X2
     <dbl>    <dbl>
1 112.8397 35.50496
2 112.5840 37.85192
3 112.5827 37.86028

我已经检查了堆栈溢出,似乎没有提出类似的问题。任何人都可以给我一个可行的答案,关于如何在信息丢失的情况下读取这种形式的数据?谢谢。:)

这不是读取器的问题。完整的数据仍然在那里 - R只是没有显示全部。当你使用基本 R 的read.csv()时也会发生同样的事情:

library(tidyverse)
df.readr <- read_csv("112.8397456,35.50496106n112.583984,37.8519194n112.5826569,37.8602818", col_names = FALSE)
df.base <- read.csv(textConnection("112.8397456,35.50496106n112.583984,37.8519194n112.5826569,37.8602818"), header = FALSE)
# By default R shows 7 digits
getOption("digits")
#> [1] 7
# Both CSV files are truncated at 7 digits
df.readr
#> # A tibble: 3 × 2
#>         X1       X2
#>      <dbl>    <dbl>
#> 1 112.8397 35.50496
#> 2 112.5840 37.85192
#> 3 112.5827 37.86028
df.base
#>         V1       V2
#> 1 112.8397 35.50496
#> 2 112.5840 37.85192
#> 3 112.5827 37.86028
# Bumping up the digits shows more
options("digits" = 15)
df.readr
#> # A tibble: 3 × 2
#>            X1          X2
#>         <dbl>       <dbl>
#> 1 112.8397456 35.50496106
#> 2 112.5839840 37.85191940
#> 3 112.5826569 37.86028180
df.base
#>            V1          V2
#> 1 112.8397456 35.50496106
#> 2 112.5839840 37.85191940
#> 3 112.5826569 37.86028180

最新更新