R- Создать одну дату из нескольких столбцов - PullRequest
7 голосов
/ 22 марта 2012

Я надеюсь, у меня есть простой вопрос для всех вас, но работа с датами в R была для меня трудной

У меня есть данные временного ряда, которые выглядят так:

Month  Day  Year  Hour  Min  Sec Data
2       1    2012  1     0   0    56
2       1    2012  1     1   0    57
2       1    2012  1     2   0    52
2       1    2012  1     3   0    55
2       1    2012  1     4   0    57

Я надеюсь создать одну дату из нескольких столбцов, а затем построить столбец данных по дате. Мой безнадежно упрощенный код будет выглядеть так:

Date1<-c(Month,Day,Year,Hour,Min,Sec)# For when hourly data is important
Date2<-c(Month,Day,Year) #For when daily data is important
as.Date(Date1)
as.Date(Date2)
plot(Data~ Date1)

Я знаю, что это не работает, но я надеюсь, что это поможет понять, чего я хочу достичь. Любые идеи о том, как можно это сделать?

Спасибо заранее!

1 Ответ

13 голосов
/ 22 марта 2012

Вам нужна функция ISOdatetime():

R> mytimes <- ISOdatetime(2012,1,2,1,2,c(3.123,3.456,3.789),tz="UTC")
R> mytimes
[1] "2012-01-02 01:02:03.122 UTC" "2012-01-02 01:02:03.456 UTC" 
[3] "2012-01-02 01:02:03.789 UTC"

А это реальные POSIXct объекты:

R> diff(mytimes)
Time differences in secs
[1] 0.333 0.333
attr(,"tzone")
[1] "UTC"
R> 

Я упростил свою жизнь здесь для примера и толькоодин аргумент векторизован.Но с вашими данными в переменной mydf, скажем, вы могли бы сделать

mytimes <- with(mydf, ISOdatetime(Year, Month, Day, Hour, Min, Sec))

, и вы должны быть настроены и готовы к построению графика.Вы также можете переназначить столбец mytimes оригиналу data.frame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...