R:如何将特定日期添加到时间列

时间:2014-11-07 11:21:57

标签: r date time time-series

我有一个已知开始日期的时间序列数据,但我的数据文件只包含一个时间列。我想添加一个日期列(julian日期)和开始日期,它应该引用我的时间列,并自动将日期更改为午夜后的第二天。

这些是我的数据集的前20行,我通常每秒有8个测量值,但对于第一个,它可能更少(就像这里,它只是7,所以没有常规的间隔)。我现在想添加一个以08.04.2010作为开始日期的列。

head(dat)
       Time Surge  Sway Heave  Press  Comp1   Comp2 Comp3 Temp
1  20:30:01 -0.36 -0.52  1.00     NA  41.12  -68.59  4.30   NA
2  20:30:01 -0.48 -0.50  0.92     NA -45.69 -122.72  5.96   NA
3  20:30:01 -0.55 -0.47  0.95     NA -53.57  -67.65  2.69   NA
4  20:30:01 -0.65 -0.51  1.00 811.06 -55.69  -67.02  3.82   NA
5  20:30:01 -0.51 -0.54  1.01     NA -45.12  -67.18  2.97   NA
6  20:30:01 -0.55 -0.51  1.00     NA -48.80  -66.34  5.41   NA
7  20:30:01 -0.65 -0.53  1.01     NA -64.64  -66.26  4.59   NA
8  20:30:02 -0.46 -0.55  1.03 810.52 -22.25  -67.13  3.59 8.41
9  20:30:02 -0.54 -0.48  1.01     NA -41.91  -66.81  5.29   NA
10 20:30:02 -0.56 -0.52  1.06     NA -45.45  -67.11  3.40   NA
11 20:30:02 -0.57 -0.52  1.04     NA -40.60  -67.82  4.13   NA
12 20:30:02 -0.62 -0.49  1.02 810.76 -52.42  -67.98  2.60   NA
13 20:30:02 -0.43 -0.49  1.01     NA -46.92  -67.84  2.92   NA
14 20:30:02 -0.65 -0.52  1.02     NA -28.02  -66.26  5.06   NA
15 20:30:02 -0.61 -0.51  1.03     NA -42.43  -67.51  4.06   NA
16 20:30:03 -0.58 -0.53  1.05 810.98 -45.55  -67.72  4.74 8.42
17 20:30:03 -0.64 -0.58  1.01     NA -65.28  -67.96  3.09   NA
18 20:30:03 -0.50 -0.52  1.05     NA -47.14  -67.84  4.89   NA
19 20:30:03 -0.51 -0.53  1.03     NA -57.48  -67.47  4.70   NA
20 20:30:03 -0.54 -0.52  1.02 810.89 -34.09  -67.86  4.58   NA

非常感谢您的帮助!!

专利

1 个答案:

答案 0 :(得分:0)

DF <- data.frame(time = c("23:58:00", "23:59:00", "00:00:00", "00:01:00", "23:59:00", "00:00:00"),
                 x=1:6)

DF$julian <- cumsum(DF$time == "00:00:00") + 1

#      time x julian
#1 23:58:00 1      1
#2 23:59:00 2      1
#3 00:00:00 3      2
#4 00:01:00 4      2
#5 23:59:00 5      2
#6 00:00:00 6      3

DF$date <- cumsum(DF$time == "00:00:00") + as.Date("2010-04-08")
#       time x julian       date
# 1 23:58:00 1      1 2010-04-08
# 2 23:59:00 2      1 2010-04-08
# 3 00:00:00 3      2 2010-04-09
# 4 00:01:00 4      2 2010-04-09
# 5 23:59:00 5      2 2010-04-09
# 6 00:00:00 6      3 2010-04-10