【发布时间】:2014-01-31 22:13:28
【问题描述】:
我有大量时间序列数据存储在一个名为“Tag.data”的数据框中,在几个月的时间里,每 30 秒记录一条记录。例如:
- 2013-09-30 23:59:00
- 2013-09-30 23:59:30
- 2013-10-01 00:00:00
- 2013-10-01 00:00:30
- 2013-10-01 00:01:00
- 2013-10-01 00:01:30
- 2013-10-01 00:02:00
- ...
- 2013-10-15 05:00:00
- 2013-10-15 05:00:30
- 2013-10-15 05:01:00
- 2013-10-15 05:01:30
- 2013-10-15 05:02:00
- ...
此数据存储在 Tag.data$dt 中。
在我的数据中,我想确定每个月的第 1 天和第 15 天,以便在以后的绘图中使用它们。
我成功地用这个代码识别了每个月的第一天:
locs <- tapply (X=Tag.data$dt, FUN=min, INDEX=format(Tag.data$dt, '%Y%m'))
at <- Tag.data$dt %in% locs
at <- at & format(Tag.data$dt, '%m') %in% c('01', '02', '03','04', '05', '06','07', '08', '09','10', '11', '12') & format(Tag.data$dt, '%d') == '01'
不幸的是,当我尝试使用以下代码识别每个月的第 15 天时,我不太成功:
locs <- tapply (X=Tag.data$dt, FUN=min, INDEX=format(Tag.data$dt, '%Y%m'))
at <- Tag.data$dt %in% locs
at <- at & format(Tag.data$dt, '%m') %in% c('01', '02', '03','04', '05', '06','07', '08', '09','10', '11', '12') & format(Tag.data$dt, '%d') == '01'|
format(Tag.data$dt, '%m') %in% c('01', '02', '03','04', '05', '06','07', '08', '09','10', '11', '12') & format(Tag.data$dt, '%d') == '15'
虽然这确实标识了每个月的第 1 天和第 15 天,但由于某种原因,它仅标识了该月 1 天的一条记录,但每个月的第 15 天的记录(其中有很多许多)。我只想确定每个月的第 1 天和第 15 天的第一条记录。任何帮助将不胜感激。
【问题讨论】: