#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")