我有一个包含每日数据的数据框。我需要将它绑定到每小时数据,但首先我需要将其转换为合适的posixct格式。这看起来像这样:
set.seed(42)
df <- data.frame(
Date = seq.Date(from = as.Date("2015-01-01", "%Y-%m-%d"), to = as.Date("2015-01-29", "%Y-%m-%d"), by = "day"),
var1 = runif(29, min = 5, max = 10)
)
result <- data.frame(
Date = d <- seq.POSIXt(from = as.POSIXct("2015-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz = ""),
to = as.POSIXct("2015-01-29 23:00:00", "%Y-%m-%d %H:%M:%S", tz = ""), by = "hour"),
var1 = rep(df$var1, each = 24) )
但是,我的数据并不像上面那样容易使用。我有很多缺少日期,所以我需要能够采用特定的df$Date
- 向量并将其转换为posixct框架,并使用匹配的每日值。
我看起来很高又低但却找不到任何东西。
答案 0 :(得分:1)
我这样做的方法是找到数据集的最小值和最大值,并将它们视为0小时和23小时。
hourly <- data.frame(Hourly=seq(min(as.POSIXct(paste0(df$Date, "00:00:00"),tz="")),max(as.POSIXct(paste0(df$Date, "23:00:00"),tz="")),by="hour"))
hourly[,"Var1"] <- df[match(x = as.Date(hourly$Hourly),df$Date),"var1"]
这实现了每日值变为每小时的结果,每日var1分配给包含该日的每小时。在这方面,缺少每日价值不应该是一个问题,如果没有匹配,它将添加NA。