将每日(日期)格式转换为每小时(posixct)
Convert daily (date) format to hourly (posixct)
我有一个包含每日数据的数据框。我需要将它绑定到每小时数据,但首先我需要将它转换为合适的 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 框架,并具有匹配的每日值。
我四处寻找,却找不到任何相关信息。
我解决这个问题的方法是找到数据集的最小值和最大值,并将它们视为第 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。
我有一个包含每日数据的数据框。我需要将它绑定到每小时数据,但首先我需要将它转换为合适的 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 框架,并具有匹配的每日值。
我四处寻找,却找不到任何相关信息。
我解决这个问题的方法是找到数据集的最小值和最大值,并将它们视为第 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。