Как я могу заставить readxl::read_xls правильно прочитать первый столбец этого набора данных?

#r #excel #readxl

Вопрос:

Первая колонка неправильно читается readxl::read_xls :

 download.file("http://www.econ.upf.edu/~michael/bioenv.xls", "~/Downloads/bioenv.xls")
head(readxl::read_xls("~/Downloads/bioenv.xls",
  col_names = c("s", "a", "b", "c", "d", "e", "Pollution", "Depth", "Temperature", "blank", "Sediment"),
  skip = 1))
#> # A tibble: 6 × 11
#>   s         a     b     c     d     e Pollution Depth Temperature blank Sediment
#>   <chr> <dbl> <dbl> <dbl> <dbl> <dbl>     <dbl> <dbl>       <dbl> <lgl> <chr>   
#> 1 2.79…     0     2     9    14     2       4.8    72         3.5 NA    S       
#> 2 5.40…    26     4    13    11     0       2.8    75         2.5 NA    C       
#> 3 8.19…     0    10     9     8     0       5.4    59         2.7 NA    C       
#> 4 3.89…     0     0    15     3     0       8.2    64         2.9 NA    S       
#> 5 2.60…    13     5     3    10     7       3.9    61         3.1 NA    C       
#> 6 4.59…    31    21    13    16     5       2.6    94         3.5 NA    G
 

Создано в 2021-10-18 годах пакетом reprex (v2.0.1)

Вот как выглядят первые несколько строк в файле Excel:

введите описание изображения здесь

Комментарии:

1. Интересно: я вижу, что A1 в электронной таблице пусто , но при names(ret <- readxl::read_xls("~/Downloads/bioenv.xls"))[1] этом я получаю "4.7999999999999998" , и весь мой первый столбец фактически Pollution является сдвинутым столбцом ( ret[1,1] есть "2.79999" и ret[2,1] есть "5.400..004" ). (Я на R-4.0.5, readxl-1.3.1 , win10.) Я не могу найти комбинацию col_types= или .name_repair= , которая не нарушает этот рабочий лист.

2. @dario Я только что обнаружил, что он отлично работает xlsx::read.xlsx("~/Downloads/bioenv.xls", sheetIndex = 1) , так что я не думаю, что в этом проблема.

3. Кроме того, если я укажу sheet="bioenv" или range="bioenv!A1:K31" , он не сможет прочитать файл. Интересно, это либо полу-поврежденный .xls файл , ошибка в readxl нем, либо и то, и другое.

4. (Близкому избирателю: да, анонимность полностью оправдана. Если вы не возражаете, пожалуйста, обоснуйте свой vtc как «нуждается в деталях/ясности», я полностью не согласен.)

5. Экспорт в формате CSV также приводит к получению правильных данных, а также к повторному сохранению файла. я бы предположил, что это проблема с самим файлом (потому что операция сохранения исправляет ее)…