R 查找两个数据帧之间最接近的时间戳,并在时差为<;时合并不同的列;60年代
我需要根据最近的时间戳合并两个数据帧,时间戳之间的最大差值为60秒 例如:R 查找两个数据帧之间最接近的时间戳,并在时差为<;时合并不同的列;60年代,r,merge,timestamp,closest,R,Merge,Timestamp,Closest,我需要根据最近的时间戳合并两个数据帧,时间戳之间的最大差值为60秒 例如: library(lubridate) df1 <- data.frame(Timestamp = ymd_hms(c("2020-01-01 00:00:00", "2020-01-01 00:02:00", &
library(lubridate)
df1 <- data.frame(Timestamp = ymd_hms(c("2020-01-01 00:00:00",
"2020-01-01 00:02:00",
"2020-01-01 00:04:00",
"2020-01-01 00:06:00",
"2020-01-01 00:08:00",
"2020-01-01 00:10:00",
"2020-01-01 00:12:00",
"2020-01-01 00:14:00",
"2020-01-01 00:16:00")),
Data = c(1:9))
df2 <- data.frame(Timestamp = ymd_hms(c("2020-01-01 00:00:10",
"2020-01-01 00:02:30",
"2020-01-01 00:12:45",
"2020-01-01 00:20:15")),
Data = c(10:13))
我的R技能还没有达到我自己可以解决这个问题的水平,我在这个特殊的问题上没有发现什么,有人愿意hep吗?非常感谢 这可以直接用sql表示:
library(sqldf)
sqldf("select a.*, b.Data df1_Data
from df2 a
left join df1 b on abs(a.Timestamp - b.Timestamp) < 60")
library(sqldf)
sqldf("select a.*, b.Data df1_Data
from df2 a
left join df1 b on abs(a.Timestamp - b.Timestamp) < 60")
Timestamp Data df1_Data
1 2019-12-31 19:00:10 10 1
2 2019-12-31 19:02:30 11 2
3 2019-12-31 19:12:45 12 7
4 2019-12-31 19:20:15 13 NA