r - 将两个数据集与数据表合并,但保留其中一个相同的列
问题描述
还没有找到这个,所以我们开始吧。我正在使用数据表,我想合并两个长度不同的表。我已经成功地做到了。
所以基本上我合并了所有行,其中我的表 1 中的关键属性“名称,日期 1”与表 2 中的关键属性“名称,日期 2”相同。
我遇到的问题是,我的表 2 中的 Date2 消失了。我不喜欢那个。我想从我的表 2 中保留我的 date2。
例子:
表格1
Name Date1
A 2018-01-01
A 2018-01-02
A 2018-01-03
表2
Name Date2
A 2018-01-01
A 2018-01-02
A 2018-01-15
而不是在我的
新表
Name Date
A 2018-01-01
A 2018-01-02
A NA
它应该看起来像这样
Name Date1 Date2
A 2018-01-01 2018-01-01
A 2018-01-02 2018-01-02
A NA NA
有谁知道诀窍?
解决方案
Date2 不会在输出中重复,因为它用作键并且在您进行等值连接时本质上是相同的数据。既然你在做all.x=TRUE
,它是一个左连接,只有左表(即ONE
与任何其他非键列一起返回)。
如果你真的想要,你可以复制 Date2 到 Date1 并使用 Date1 加入如下:
TWO[, Date1:=Date2][ONE, on=.(Name, Date1)]
# Name Date2 Date1
#1: A 2018-01-01 2018-01-01
#2: A 2018-01-02 2018-01-02
#3: A NA 2018-01-03
数据:
library(data.table)
ONE <- fread("Name Date1
A 2018-01-01
A 2018-01-02
A 2018-01-03")
TWO <- fread("Name Date2
A 2018-01-01
A 2018-01-02
A 2018-01-15")
推荐阅读
- jenkins - Jenkins 管道 Cron Auto Scheduler 作业在调度程序/计时器运行后用 Jenkins UI 中的默认值覆盖用户输入的值
- regex - Perl:如何以结构化方式获取多个正则表达式捕获?
- timestamp - 获取具有最新时间戳的属性的 JSON 数组对象
- node.js - 下载某些 NPM 包时出错
- php - 当 web 服务器上安装 php 时,Ansible Haproxy 不工作(错误 503 服务不可用)
- javascript - 在节点中运行 js 文件时返回空对象
- c++ - 退出分段错误¿我该如何解决这个问题?
- ffmpeg - FFMPEG 将 H265 视频从 10 位转码为 8 位
- javascript - React Material-UI最简单的Hello Wold测试中的无效钩子调用错误
- encryption - 这种双挂锁类比与公私钥加密+签名之间是否有任何功能差异?