首页 文章

将每日(日期)格式转换为每小时(posixct)

提问于
浏览
0

我有一个包含每日数据的数据框 . 我需要将它绑定到每小时数据,但首先我需要将其转换为合适的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 -vector并将其转换为posixct框架,并使用匹配的每日值 .

我看起来很高,但却找不到任何东西 .

1 回答

  • 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"]
    

    这实现了每日值变为每小时的结果,每日小时分配给包含当天的每小时 . 在这方面,缺少每日 Value 不应该是一个问题,如果没有匹配,它将添加NA .

相关问题