dplyr 连接 A 列或 B 列

2024-01-11

如何使用 dplyrs 连接函数在 R 中通过 OR 语句连接 2 个表?

例如。使用以下密钥将 df1 加入到 df2 上: df1_ColumnA == df2_ColumnA 或 df1_ColumnA == df2_ColumnB?

library(dplyr)

df1 = data.frame(V1 = c('A', 'B', 'C','D'), v2 = c(1,2,3,4))
df2 = data.frame(VA = c('A', 'B', 'C'), VB = c('D', 'E', 'F'), vC = c(4,5,6))

## Join on column 1
df3 = df1 %>% left_join(df2, by = c('V1' = 'VA'))

## join on column 1 AND column 2
df4 = df1 %>% left_join(df2, by = c('V1' = 'VA', 'V1' = 'VB'))

这是行不通的:

## join on column 1 OR column 2
df4 = df1 %>% left_join(df2, by = c('V1' = 'VA' | 'V1' = 'VB'))

编辑:预期输出

   V1 v2 VA VB vC
1  A  1  A  D  4
2  B  2  B  E  5
3  C  3  C  F  6
4  D  4  A  D  4

The ORjoin 未实现于tidyverse(也可能是错误的)。但是,有一种选择unite将感兴趣的列放在一起,然后执行regex_right_join/regex_left_join from fuzzyjoin

library(fuzzyjoin)
library(dplyr)
df2 %>%
    unite(VAB, VA, VB, remove = FALSE) %>%
    regex_right_join(df1, by = c("VAB" = "V1")) %>% 
    select(names(df1), names(df2))
#.  V1 v2 VA VB vC
#1  A  1  A  D  4
#2  B  2  B  E  5
#3  C  3  C  F  6
#4  D  4  A  D  4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dplyr 连接 A 列或 B 列 的相关文章

  • 将列表中的每个元素转换为数据框中的一列

    假设我有以下列表 d library combinat d permn c a b c 这看起来如下 1 1 a b c 2 1 a c b 3 1 c a b 4 1 c b a 5 1 b c a 6 1 b a c 是否可以将此列表的
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • 在网格中制作一个矩形图例,并标记行和列

    我有一个 ggplot 我将因子映射到填充和 alpha 如下所示 set seed 47 the data lt data frame value rpois 6 lambda 20 cat1 rep c A B each 3 cat2
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 使用点阵个性化 R 上显示的 X 轴值

    我收集了大量包含日期 客户端及其 NFS 使用情况的数据 我正在使用lattice R包进行绘图 正如对超级用户的建议 https superuser com questions 523195 plot custom log data on
  • 如何在 R 中的 dygraph 标题中使用 UTF-8 字符

    使用 Rstudio Windows8 当我使用 dygraph 函数绘制时间序列时 在尝试在主标题中使用 UTF 8 字符时遇到问题 library dygraphs dygraph AirPassengers main T tulo 这
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 如何动态地将 sliderInput 添加到闪亮的应用程序中?

    使用闪亮 我上传一个 csv 文件 并根据列名称 我需要向 ui 添加滑块 sidebarPanel fileInput file1 Upload CSV File to Create a Model accept c text csv t
  • R 改变构面的顺序

    我正在尝试将方面的顺序从 BA SLG 更改为 SLG BA 我发现了与此类似的问题 但我认为我的解决方案可能不起作用 因为我已经在Excel中汇总了数据 因此 我的数据框可能会有所不同 无论如何 我尝试实现这个但无济于事 df2 lt f
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • HTTR GET 新错误:SSL 证书问题:证书已过期

    我已经运行这段代码几个月了 没有出现任何问题 今天我突然开始在我的两台 AWS 服务器上收到以下错误消息 错误 curl curl fetch memory url handle handle SSL证书问题 证书已过期 当尝试运行以下代码
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • ggplot2:带有 geom_line 的 x 轴因子不起作用

    我想要一个线图 其中value绘制为函数expt每级一行var 这是我的数据 lines lt expt var value 1 none p 0 183065327746799 2 none p 0 254234138384241 3 n
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 如何在R中实现countifs函数(excel)

    我有一个包含 100000 行数据的数据集 我尝试做一些countifExcel 中的操作 但速度慢得惊人 所以我想知道R中是否可以完成这种操作 基本上 我想根据多个条件进行计数 例如 我可以指望职业和性别 row sex occupati

随机推荐

  • 有哪些工具可用于调试/单步执行正则表达式?

    虽然有很多好的在线和离线测试正则表达式的工具 但我还没有找到一个工具 除了正则表达式好友 http www regexbuddy com 让我看到正则表达式引擎查找匹配项 或就此而言查找不存在匹配项 所采取的步骤 有谁知道有什么工具可以做到
  • 使用 Angular 路线时不显示 Stripe Checkout 按钮

    我目前正在尝试实现标准的 Stripe Payments 结账对话 当我插入短片时
  • 尝试将照片上传/发布到群组时出现 OAuthException

    我目前正在尝试通过应用程序将照片上传到页面和组 我有这些代码 try facebook gt setFileUploadSupport true args array message gt This is my image caption
  • 如何处理 Git 存储库中的图像?

    我继承了一个中等规模的 iOS 项目 大约 30 000 行代码 它有一个insane图像资产的数量 当然我们使用Git Github来进行scm 目前 图像包含在目录树中 因此被提取到存储库中 使其变得臃肿并且通常使开发变得非常令人头疼
  • Chrome 的“请求桌面站点”选项如何工作?

    对于 iOS 谷歌浏览器 当用户点击 请求桌面站点 按钮时 浏览器会做什么来尝试打开桌面站点 我想象网站正在寻找的请求上有某种标头 或者类似的东西 我认为唯一的区别是User Agent 请求中的标头 以下是我的 Android 设备上的
  • Rails JSON 请求未正确解析为 post 参数

    我正在尝试调试 Rails 未解码 JSON POST 数据的问题 服务器日志显示 2011 12 14T06 44 44 00 00 app web 2 Started POST 2011 12 14T06 44 44 00 00 app
  • 具有参数化构造函数的 Xamarin DependencyService

    如何使用 Xamarin Forms DependencyService 通过参数化构造函数注入依赖项 Answer 你不能 程序集属性实现仅适用于默认构造函数 也称为无参数构造函数 例如 assembly Dependency typeo
  • 使用 java 在 infix 到 postfix 应用程序中得到错误的输出

    我最近编写了一个java程序 它采用中缀表达式并将其转换为后缀表达式 它在大多数情况下都有效 但我得到了某些表达式的错误输出 例如表达式 a b c d e 在应该输出的时候会输出 abcde a b c d e import java u
  • Visual Studio“在浏览器中查看”特定页面的快捷方式?

    我们正在使用视觉工作室2008并想知道是否有办法为 创建 键盘或工具栏 快捷方式在浏览器中查看 命令 但是与特定页面来自特定 已加载 项目 我们总是从 Project x 的 Somepage aspx 开始测试 调试我们的应用程序 我想创
  • 不使用过滤函数删除 RDD 中的第一个元素

    我从一个文件构建了一个 RDD 其中 RDD 中的每个元素都是文件中由分隔符分隔的部分 val inputRDD1 RDD String Long myUtilities paragraphFile spark path1 coalesce
  • yii2 路由 - 将参数传递给规则中的路由

    当用户访问domain page 我需要将它们路由到controller action 100 我不想通过 URL 传递任何参数 但想将其添加到 url 规则中 我将下面的代码添加到我的配置文件中 urlManager gt rules g
  • bootstrap下拉顶级导航制作可点击的链接

    我正在使用 bootstrap wordpress 主题创建一个带有下拉菜单的菜单 但是顶级链接仅在单击时显示下拉菜单 并且单击时不会转到页面本身 因此 在 www thermoryuk co uk wp 中 当我单击 地板 时 我想转到地
  • 为什么解释器模式很糟糕?

    In Steve Yegge 对设计模式的评论 http steve yegge googlepages com ten great books 他将解释器模式称为 笑话 他继续谈论编译器的看法如何改变 但解释语言仍然如何继续 尽管我看不出
  • 正则表达式中的捕获组[重复]

    这个问题在这里已经有答案了 我正在探索在正则表达式中捕获组 但我对缺乏相关文档感到困惑 例如 谁能告诉我两个正则表达式之间的区别 madhur and madhur 就我而言 第二个建议匹配madhur字符串中零次或一次 第一个与第二个有什
  • Python/Pandas 计算 Ichimoku 图表组件

    我有 Pandas DataFrame 对象 其中包含日期 开盘价 收盘价 每日最低股票数据和最高股票数据 我想计算的组成部分Ichimoku https www investopedia com terms i ichimoku clou
  • 如何在 Ubuntu 18.04 上安装或升级到 sqlite 3.33.0?

    我目前正在运行带有 SQLite3 的 Ubuntu 18 04 SQLite 3 的版本为 3 22 0 我需要将其升级到版本 3 33 0 以利用可用的新功能 如果我使用 apt get 删除并重新安装 SQLite3 它只会重新安装
  • 如何在 woocommerce 中获取产品的特色图片

    请告诉我哪里出错了 产品特色图片未显示 args array post type gt product posts per page gt 80 product cat gt profiler orderby gt rand loop ne
  • 如何在 Enterprise Architect 中自动生成 HTML 输出

    Enterprise Architect 有一种方法可以生成 HTML RTF 等格式的文档 您可以发布它 但您必须使用其 GUI 手动执行此操作 当您的 eap 文件位于 CVS Subversion 服务器中时 拥有一个每天检查最新版本
  • 将固定大小的 ImageView 在父 ConstraintLayout 中水平居中

    我有一个相当简单的布局 AConstraintLayout占满整个屏幕 一大片CardView在顶部有一个ImageView那是一半CardView和上面的一半 实际上不是一半 但你明白了 然而 有两个问题 ImageView粘在父级的左侧
  • dplyr 连接 A 列或 B 列

    如何使用 dplyrs 连接函数在 R 中通过 OR 语句连接 2 个表 例如 使用以下密钥将 df1 加入到 df2 上 df1 ColumnA df2 ColumnA 或 df1 ColumnA df2 ColumnB library