данные о дате / времени отображаются как фактор?

#r #date #posixct

#r #Дата #posixct

Вопрос:

Я пытаюсь проанализировать некоторые данные регистратора температуры, но R не распознает мой столбец даты как дату. Он считывает это как фактор.

 > head(df)
        date_time     temp    site   serial
1 2020-07-16 0:00 5.938889 502trib 20292603
2 2020-07-16 0:30 5.894444 502trib 20292603
3 2020-07-16 1:00 5.822222 502trib 20292603
4 2020-07-16 1:30 5.744444 502trib 20292603
5 2020-07-16 2:00 5.705556 502trib 20292603
6 2020-07-16 2:30 5.650000 502trib 20292603

> class(df$date_time)
[1] "factor"
  

Я просмотрел файлы Excel, сортируя данные по date_time, от самых старых к самым новым, чтобы убедиться, что нет никаких значений, отличных от даты. Мне удалось изменить его на формат POSIXct с

 > date<-as.POSIXct(as.numeric(as.factor(df$date_time)),origin="2020-07-16 0:00")
  

но почему это вообще стало фактором?

Редактировать

Я экспортировал объединенный фрейм данных в формате csv, чтобы я мог его проверить. Оказывается, что R вставил около 3000 строк пустых данных в середину фрейма данных. Слева направо он читается » «, «NA», » «, «NA». Это также давало мне дополнительный уровень в столбце сайта (содержал пробел), но не в столбце serial (содержал NA). Зачем это делать?

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

1. Привет! С информацией, которая в настоящее время присутствует в вашем вопросе, трудно понять, что происходит. Можете ли вы поделиться исходными данными (или их подмножеством) и кодом, который вы использовали для чтения в данных?

2. Привет @haptic, ваша ошибка возникает, вероятно, потому, что ваш час имеет только одну цифру. Попробуйте вставить ноль и использовать функцию ymd_hm(df$date_time) из lubridate пакета.

3. В базе R: as.POSIXct(df$date_time, "%Y-%m-%d %H:%M", tz="EST")