我想按照下面最近的时间合并两个数据帧,
> df1
Time Var1 Var2
01/01/2019 01:10:00 "A" "D"
02/01/2019 01:10:00 "B" "E"
03/01/2019 01:10:00 "C" "F"
> df2
Time Var3 Var4
01/01/2019 01:10:00 "C" "H"
02/01/2019 01:10:00 "B" "I"
02/01/2019 10:10:00 "G" "J"
04/01/2019 01:10:00 "A" "K"根据时间合并它们。理想的合并数据框架应该如下,
Time Var3 Var4 var1 var2
01/01/2019 01:10:00 "C" "H" "A" "D"
02/01/2019 01:10:00 "B" "I" "B" "E"
02/01/2019 10:10:00 "G" "J" "B" "E"
04/01/2019 01:10:00 "A" "K" "C" "F"如何认识到这一点?谢谢!
发布于 2020-08-01 23:13:04
在data.table中使用滚动连接的一个选项
df1[df2, on=.(Time), roll="nearest", allow.cartesian=TRUE]产出:
Time Var1 Var2 Var3 Var4
1: 2019-01-01 01:10:00 A D C H
2: 2019-02-01 01:10:00 B E B I
3: 2019-02-01 10:10:00 B E G J
4: 2019-04-01 01:10:00 C F A K数据:
library(data.table)
df1 <- fread('Time,Var1,Var2
01/01/2019 01:10:00,A,D
02/01/2019 01:10:00,B,E
03/01/2019 01:10:00,C,F')
df1[, Time := as.POSIXct(Time, format="%m/%d/%Y %T")]
df2 <- fread('Time,Var3,Var4
01/01/2019 01:10:00,C,H
02/01/2019 01:10:00,B,I
02/01/2019 10:10:00,G,J
04/01/2019 01:10:00,A,K')
df2[, Time := as.POSIXct(Time, format="%m/%d/%Y %T")]https://stackoverflow.com/questions/63210738
复制相似问题