在 R 中,如果我有这些数据
date.hour temp
2014-01-05 20:00:00 16
2014-01-06 20:00:00 14
2014-01-06 22:00:00 18
与seq
我可以获得日期时间序列
begin <- as.POSIXct('2014-1-5')
end <- as.POSIXct('2014-1-7')
seq(begin, end, by=2*3600)
我如何将数据补充为类似的内容
date.hour temp
2014-01-05 00:00:00 NA
2014-01-05 02:00:00 NA
...
2014-01-05 18:00:00 NA
2014-01-05 20:00:00 16
2014-01-05 22:00:00 NA
...
2014-01-06 20:00:00 18
2014-01-06 22:00:00 14
...
2014-01-07 00:00:00 NA
如果这是您的示例数据框
dd<-data.frame(
date.hour = structure(c(1388970000, 1389056400, 1389063600), class = c("POSIXct", "POSIXt"), tzone = ""),
temp = c(16L, 14L, 18L)
)
那么你就可以merge()
与你的序列
begin <- as.POSIXct('2014-1-5')
end <- as.POSIXct('2014-1-7')
comp<-seq(begin, end, by=2*3600)
merge(data.frame(date.hour=comp), dd, all.x=T)
通过设置all.x=T
,缺失值将用 NA 填充。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)