R: Два идентично структурированных файла Excel возвращают различные типы данных в кадрах данных - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть два разных файла Excel, excel1 и excel2.

Я читаю их, используя отдельные, но идентичные функции:

df1<- readxl::read_xlsx("excel1.xlsx", sheet= "Ad Awareness", skip= 7)
df2<- readxl::read_xlsx("excel2.xlsx", sheet= "Ad Awareness", skip= 7)

Однако, когда я запускаю head() для каждого, вот что возвращает df`:

calDate             Score
  <dttm>              <dbl>
1 2016-10-17 00:00:00  17.8
2 2016-10-18 00:00:00  17.2
3 2016-10-19 00:00:00  20.3

А вот что возвращает df2:

  calDate Score
    <dbl> <lgl>
1   43025 NA   
2   43026 NA   
3   43027 NA   

Есть ли причина, по которой тип данных читается по-разному? В файлах нет ничего другого.

1 Ответ

0 голосов
/ 11 ноября 2018

read_xlsx() будет угадывать типы переменных на основе ваших данных (см. здесь для получения дополнительной информации).

То, что вы описываете, может быть связано с:

  • различное количество данных в разных файлах (недостаточно данных в одном из них, чтобы получить правильное предположение)

  • изменения, которые вы могли внести в Excel в формат ячейки (эти изменения не всегда визуально очевидны в Excel)

Не видя ваших данных, трудно дать вам больше ответа, чем этот.

Но вы можете контролировать это с помощью аргумента col_types:

col_types: либо «NULL», чтобы угадать все из электронной таблицы, либо символьный вектор, содержащий одну запись на столбец из этих Опции: «Пропустить», «Угадай», «Логический», «Числовой», «Дата», «текст» или «список». Если указан ровно один тип col_type, будет переработан. Содержимое ячейки в пропущенном столбце никогда не читается, и этот столбец не будет отображаться в данных кадровый вывод. Ячейка списка загружает столбец как список длины 1 векторов, которые набираются с использованием логики угадывания типа из ‘Col_types = NULL’, но для каждой ячейки.

...