Даты и время в отдельных столбцах преобразуются в datetime в R - PullRequest
6 голосов
/ 17 января 2012

Я импортирую некоторые данные из NOAA, и у них есть даты и время в отдельных столбцах. Я искал элегантный способ добавить один столбец даты и времени в мой R-кадр данных, но не смог. Я нашел вопрос обмена стека об обратном, но не об этом. Есть ли простая команда as.Date, которую я мог запустить? Я просто использую read.table для загруженного текстового файла, и он просто находит.

Данные буй здесь: http://www.ndbc.noaa.gov/data/realtime2/51202.txt

>yr mo  dy  hr  mn  degT    m.s m.s.1   m   sec sec.1 degT.1    hPa degC    degC.1  degC.2  nmi hPa.1   ft
>2012   1   16  3   55  MM  MM  MM  1.4 10  7.2 339 MM  MM  23.9    MM  MM  MM  MM

Ответы [ 2 ]

10 голосов
/ 17 января 2012

Вы можете использовать ISOdatetime, который является простой оболочкой для as.POSIXct. Обязательно укажите аргумент sec как ноль.

Data$timestamp <- with(Data, ISOdatetime(YY,MM,DD,hh,mm,0))
5 голосов
/ 17 января 2012

Да, вы хотите вставить столбцы даты и времени вместе, а затем привести эту полную строку к объекту даты и времени.

dat <- within(dat, datetime <- as.POSIXlt(paste(yr, mo, dy, hr, mn),
                                          format = "%Y %m %d %H %M"))

при условии, что dat - это объект, содержащий данные буев.Это добавляет новые столбцы, которые являются объектами класса «POSIXlt», или вы можете использовать as.POSIXct(), если предпочитаете другой формат.

Или, посмотрев на файл, можно использовать имена их столбцов:

dat <- within(dat, datetime <- as.POSIXlt(paste(YY, MM, DD, hh, mm),
                                          format = "%Y %m %d %H %M"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...