我有
形式的数据dates = as.Date(c("2015-04-07","2015-04-07","2015-04-08","2015-04-08"))
hour = rep(c(1,2),2)
value = c(3,6,8,4)
example.data = data.frame(dates,hour,value)
给出了
dates hour value
1 2015-04-07 1 3
2 2015-04-07 2 6
3 2015-04-08 1 8
4 2015-04-08 2 4
我希望通过不断的填充来生成每一刻钟的数据。
结果应为
dates hour qhour value
1 2015-04-07 1 0 3
2 2015-04-07 1 1 3
3 2015-04-07 1 2 3
4 2015-04-07 1 3 3
5 2015-04-07 2 0 6
6 2015-04-07 2 1 6
7 2015-04-07 2 2 6
等等。因此,如果在相应的小时内每小时一个小时,则每小时复制每个小时的每个值。可以使用sqldf
或类似的东西来完成这项工作。当然,我的数据集比例子大得多。
答案 0 :(得分:3)
这是否足够有效?
DF <- example.data[rep(seq_len(nrow(example.data)), each = 4),]
DF$qhour <- 0:3
# dates hour value qhour
#1 2015-04-07 1 3 0
#1.1 2015-04-07 1 3 1
#1.2 2015-04-07 1 3 2
#1.3 2015-04-07 1 3 3
#2 2015-04-07 2 6 0
#2.1 2015-04-07 2 6 1
#2.2 2015-04-07 2 6 2
#2.3 2015-04-07 2 6 3
#3 2015-04-08 1 8 0
#3.1 2015-04-08 1 8 1
#3.2 2015-04-08 1 8 2
#3.3 2015-04-08 1 8 3
#4 2015-04-08 2 4 0
#4.1 2015-04-08 2 4 1
#4.2 2015-04-08 2 4 2
#4.3 2015-04-08 2 4 3