我在将日期转换为“小时以来”格式时遇到问题,我认为我不需要应用一些更复杂的日期操作方法,但我可能错了,我希望有人可能知道好的解决方案
我所拥有的数据采用表格格式,我从文本文件中读取。 5000多行数据的3行示例是;
date1 <- matrix(c(2007,2007,2007, 12,12,12,1,2,3,0.365,0.096,-0.416),nrow=3)
打印出来:
date1
[,1] [,2] [,3] [,4]
[1,] 2007 12 1 0.365
[2,] 2007 12 2 0.096
[3,] 2007 12 3 -0.416
第一列是年份,第二列是月份,第三列是第一列。第4列中的值是与我的研究相关的指数值。
我希望与索引值匹配的数据是略微奇怪的格式,自“1800-01-01”后的小时数
ftime <- c(1822548, 1822572, 1822596)
ftime可以通过以下功能打印为日期。
as.Date(ftime/24,"1800-01-01")
[1] "2007-12-01" "2007-12-02" "2007-12-03"
我的代码都使用ftime中的数值来匹配数据,但我似乎无法弄清楚如何将新数据(data1)格式化为相同的数据。
我觉得它应该是一个简单的解决方案,但似乎无法让它发挥作用。
总是非常感谢帮助!
答案 0 :(得分:1)
如果我得到你想要的东西,你可以使用difftime
功能:
#setting the origin
myorigin<-as.Date("1800-01-01")
#converting date1 to Date objects
myDates<-as.Date(do.call(function(...) paste(...,sep="-"),as.data.frame(date1[,1:3])))
#get the results
difftime(myDates,myorigin,units="hour")
#Time differences in hours
#[1] 1822536 1822560 1822584