将时间序列格式化为具有朱利安日期的数据帧

时间:2015-06-08 13:22:37

标签: r

我有一个时间序列tt.txt的每日数据,从1998年5月1日到2012年10月31日,在一列中:

    v1
   296.172
   303.24
   303.891
   304.603
   304.207
   303.22
   303.137
   303.343
   304.203
   305.029
   305.099
   304.681
   304.32
   304.471
   305.022
   304.938
   304.298
   304.120

文本文件中的每个数字代表相应日期的开尔文最高温度。我想通过添加year,jday和数据值来将数据放在3列中:

     year jday MAX_TEMP 
1    1959  325 11.7      
2    1959  326 15.6      
3    1959  327 14.4    

2 个答案:

答案 0 :(得分:1)

如果您有带日期的向量,我们可以将其转换为'年份'和' jday'由

$dir = "C:\Program Files\SomeApp"
$hostIp = "10.1.1.1"

$dir -replace '.:',"\\$hostIP\$($(Split-Path -Qualifier $dir).TrimEnd(':'))$"

要转换回%Y%j'至于'日期'类

v1 <- c('May 1998 05', 'October 2012 10')
v2 <- format(as.Date(v1, '%b %Y %d'), '%Y %j')
df1 <- read.table(text=v2, header=FALSE, col.names=c('year', 'jday'))
df1
#  year jday
#1 1998  125
#2 2012  284

更新

我们可以使用df1$date <- as.Date(do.call(paste, df1[1:2]), '%Y %j') 读取数据集。如果我们在更改read.table日期&#39;之后知道了原始数据集的开始和结束日期seq,请使用cbind创建一系列日期。到了#年;和&#39;朱利安日&#39;。

format

答案 1 :(得分:0)

您可以使用yday

as.POSIXlt("8 Jun 15", format = "%d %b %y")$yday