#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 также приводит к получению правильных данных, а также к повторному сохранению файла. я бы предположил, что это проблема с самим файлом (потому что операция сохранения исправляет ее)…