合并并加入夏令时

时间:2015-10-20 12:05:11

标签: r left-join dplyr posixct

我在为即将到来的夏令时转换合并/加入数据时遇到问题。我的时间向量d应该是控制时间向量,所以当我加入缺少数据的数据时,我只得到NA值。这通常很有效。然而,在即将到来的'2015-10-25 02:00:00'期间,它出现了可怕的错误。

数据示例:

d <- seq.POSIXt(from = as.POSIXct("2015-10-25 00:00:00", "%Y-%m-%d %H:%M:%S", tz = ""), 
                to = as.POSIXct("2015-10-25 23:00:00", "%Y-%m-%d %H:%M:%S", tz = ""), by = "hour")

df1 <- data.frame(Date = d, value1 = 1:25)

df2 <- data.frame(Date = as.POSIXct(format(d, "%Y-%m-%d %H:%M:%S"), tz = ""), value2 = 26:50)

require(dplyr)

df <- left_join(df1, df2, by = "Date")

df <- merge(df1, df2, by = "Date", all.x = TRUE)

left_joinmerge都会给出错误的结果,我不确定会出现什么问题。好吧,我可以看到R不知道如何处理这两个重复的小时 - 这是完全可以理解的。这两个时间序列都是POSIXct,但显然我遗漏了一些信息?你怎么能处理这个?我更喜欢基础R解决方案。

如果你需要从不同的数据集中做更多的连接,它会成倍地变得更糟。我需要加入7,它变得越来越糟。

正确的结果是:

result <- data.frame(Date = d, var1 = df1[, 2], var2 = df2[, 2])

0 个答案:

没有答案
相关问题