gpt4 book ai didi

R- 从多列创建单个日期

转载 作者:行者123 更新时间:2023-12-04 10:28:10 24 4
gpt4 key购买 nike

我希望我有一个简单的问题给大家,但在 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)

我知道它行不通,但我希望它可以让我明白我想要完成的事情。
关于如何去做这件事的任何想法?

提前致谢!

最佳答案

你想要 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

关于R- 从多列创建单个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9813270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com