r - 合并或组合两个具有不相等行的数据框,并用 R 中 NA 的最接近值填充空白
问题描述
我想根据最近的时间合并两个数据框,如下所示,
> 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"
如何实现这一点?谢谢!
解决方案
使用滚动加入的选项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")]
推荐阅读
- python - 失败的 python 套接字(使用 OPC UA)从 Docker 内连接到模拟服务器
- microsoft-graph-api - 从 Power Automate 中的 SharePoint 网站获取项目时,图形 API 错误 503 serviceNotAvailable
- python - Jupyter 笔记本和虚拟环境的奇怪行为
- ios - iOS - UIWebView 被 WKWebView 取代,但对于 Apple 它仍然存在
- python - Django使用ORM选择每组前n条记录
- power-automate - “创建或修改项目时”PowerAutomate 触发器未触发
- node.js - 将回调函数转换为 RxJS
- netlogo - 行为空间输出
- javascript - 发送带有无表单按钮的电子邮件
- javascript - 阻止访问向特殊脚本发送请求