我很难找到一个解决方案,用于对齐来自不同数据帧的两列。我正在尝试合并这两个数据帧,以便为两个数据帧获得相同的观察时间。我已经尝试了很多这里提供的解决方案,特别是从动物园和xts合并,但大多数在我的情况下都不可用。一些虚拟代码。
df1
df2<-structure(list(datetime = structure(1:10, .Label = c("2004-01-03 03:00:00",
"2004-01-03 12:00:00", "2004-01-03 15:00:00", "2004-01-03 21:00:00",
"2004-01-04 03:00:00", "2004-01-04 12:00:00", "2004-01-04 15:00:00",
"2004-01-04 21:00:00", "2004-01-05 03:00:00", "2004-01-05 12:00:00"
), class = "factor"), value = c(-1.7, -2.2, -2.5, -3.9, -5.5,
-5.6, -6, -6.7, -7.8, -7.6)), .Names = c("datetime", "value"), class = "data.frame", row.names = c(NA,
-10L))
DF2
datetime value datetime value
2004-01-03 03:00:00 NA 2004-01-03 03:00:00 -1.7
2004-01-03 12:00:00 NA 2004-01-03 12:00:00 -2.2
2004-01-03 15:00:00 NA 2004-01-03 15:00:00 -2.5
2004-01-03 21:00:00 -12.7 2004-01-03 21:00:00 -3.9
2004-01-10 03:00:00 -12.9 2004-01-04 03:00:00 -5.5
2004-01-10 12:00:00 -7.9 2004-01-04 12:00:00 -5.6
2004-01-10 15:00:00 -6.2 2004-01-04 15:00:00 -6
2004-01-10 21:00:00 -14 2004-01-04 21:00:00 -6.7
2004-01-11 03:00:00 -11.7 2004-01-05 03:00:00 -7.8
2004-01-11 12:00:00 NA 2004-01-05 12:00:00 -7.6
我希望得到这样的东西:
{{1}}
提前致谢。
编辑:
我忘了提到原始数据帧有不同的记录数。这是合并这些数据的主要问题。
后来编辑。 我发现从plyr加入就可以了。
答案 0 :(得分:0)
转换为动物园,同时确保它们都是POSIXct,然后合并。 (可选)转换回data.frame。
library(zoo)
z1 <- read.zoo(df1)
z2 <- read.zoo(df2, tz = "")
z <- merge(z1, z2)
fortify.zoo(z)