将修改后的朱利安日期转换为UTC

时间:2012-08-09 18:17:34

标签: r date zoo julian

我有一个大约有200000行的大文件,我想以一种方式获取文件,我可以使用zoo包绘制文件并按日期,月份和时间截断。第一列是修改后的朱利安日期,第二列是温度。

我很感激任何帮助。 该文件看起来像:

4812663507.000000,1.76438
4812663512.000000,1.65121
4812663517.000000,1.60362
4812663522.000000,1.51509

1 个答案:

答案 0 :(得分:1)

从评论中,时间是某种MDJ秒,因此您可以使用Gabor的提示将其转换为时间索引:

library(zoo)
z <- read.zoo("myfile.dat", sep = ",",
              FUN = function(x){as.POSIXct(x,origin='1858-11-17',tz='UTC')})

1858-11-17是http://en.wikipedia.org/wiki/Julian_day

的MJD时期

或者你可以指定原点并添加秒 - 从:

z <- read.zoo("myfile.dat", sep = ",",
              FUN = function(x){as.POSIXct('1858-11-17',tz='UTC')+x})

然后,您似乎希望按时间以不同的粒度聚合数据:

plot(aggregate(z,cut(time(z),breaks='year'   ),mean)) 
plot(aggregate(z,cut(time(z),breaks='quarter'),mean)) 
plot(aggregate(z,cut(time(z),breaks='month'  ),mean))
plot(aggregate(z,cut(time(z),breaks='day'    ),mean)) 
plot(aggregate(z,cut(time(z),breaks='hour'   ),mean))
plot(aggregate(z,cut(time(z),breaks='6 min'  ),mean)) 
plot(aggregate(z,cut(time(z),breaks='min'    ),mean)) 
plot(aggregate(z,cut(time(z),breaks='10 sec' ),mean)) 
plot(aggregate(z,cut(time(z),breaks='sec'    ),mean))