我希望我能为你们提出一个简单的问题,但是在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
Run Code Online (Sandbox Code Playgroud)
我希望从多列创建一个日期,然后按日期绘制数据列.我绝望的过度简化的代码看起来像这样:
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)
Run Code Online (Sandbox Code Playgroud)
我知道它不起作用,但我希望它可以解决我想要实现的目标.关于如何做到这一点的任何想法?
提前谢谢!
Dir*_*tel 13
你想要的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"
Run Code Online (Sandbox Code Playgroud)
这些是真实的POSIXct对象:
R> diff(mytimes)
Time differences in secs
[1] 0.333 0.333
attr(,"tzone")
[1] "UTC"
R>
Run Code Online (Sandbox Code Playgroud)
我为这个例子让我的生活变得更轻松,只有一个参数被矢量化了.但是,如果您将数据放在变量中mydf,那么您可以这样做
mytimes <- with(mydf, ISOdatetime(Year, Month, Day, Hour, Min, Sec))
Run Code Online (Sandbox Code Playgroud)
你应该准备好并准备好进行策划.您也可以将mytimes列重新分配给原始列data.frame.