R:基于“OR”语句的连接

2023-12-24

我正在使用 R 编程语言。假设我有以下两个表:

table_1 = data.frame(id = c("123", "123", "125", "125"), id2 = c("11", "12", "14", "13"),
date_1 = c("2010-01-31","2010-01-31", "2015-01-31", "2018-01-31" ))

table_1$id = as.factor(table_1$id)
table_1$id2 = as.factor(table_1$id2)
table_1$date_1 = as.factor(table_1$date_1)

table_2 = data.frame(id = c("123", "123", "125", "125"), id2 = c("111", "112", "14", "113"),
date_2 = c("2009-01-31","2010-01-31", "2010-01-31", "2010-01-31" ),
date_3 = c("2011-01-31","2010-01-31", "2020-01-31", "2020-01-31" ))


table_2$id = as.factor(table_2$id)
table_2$id2 = as.factor(table_2$id2)
table_2$date_2 = as.factor(table_2$date_2)
table_2$date_3 = as.factor(table_2$date_3)

如果满足以下两个条件中的任何一个(即,我想执行“连接”(任何连接都可以,我只是想学习一般如何执行此操作)如果 Condition_1 = TRUE 或 Condition_2 = TRUE,则“加入”)

条件_1

  1. 如果表_1$id = 表_2$id

AND

  1. if table_1$date BETWEEN(table_2$date_2,table_2$date_3)

条件_2

  1. 如果表_1$id2 = 表_2$id2

AND

  1. if table_1$date BETWEEN(table_2$date_2,table_2$date_3)

我已经尝试过的:我知道如何单独执行这两个连接,例如:

library(sqldf)

#Condition_1


final = sqldf("select a.*, b.*
           
       from table_1 a left join table_2 b
       on a.id = b.id and 
          a.date_1 between 
              b.date_2 and
              b.date_3") 


#Condition_2


final_2 = sqldf("select a.*, b.*
           
       from table_1 a left join table_2 b
       on a.id2 = b.id2 and 
          a.date_1 between 
              b.date_2 and
              b.date_3") 

然后我可以将这些文件(“final_3”)“绑定”在一起(并删除完全重复的行):

final_3 = rbind(final, final_2)

final_3 = final_3[!duplicated(final_3[c(1,2,3,4,5,6,7)]),]

我的问题:有没有办法在一个步骤中将这两个表合并在一起,而不是两个单独的步骤?这可以使用 Base R 或 DPLYR 来完成吗?

Thanks!


这可以通过单个 SQL 语句完成,如下所示。

library(sqldf)

sqldf("select distinct * 
  from table_1 a left join table_2 b
  on (a.date_1 between b.date_2 and b.date_3) and 
     (a.id = b.id or a.id2 = b.id2)")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:基于“OR”语句的连接 的相关文章

  • 当每个记录都是一个段落并且某些记录有 4 个字段而其他记录有 6 个字段时,如何将文本文件读入 R

    如何读取文本文件 其中每条记录都是一个段落 每个换行符表示单独的字段 复杂的是 有些记录有 4 行 有些记录有 6 行 当字段数量的差异为 1 时 DWin 解决了我的问题 但当字段数量差异为 2 时 一切都崩溃了 你可以有一个在这里看看他
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • 使用 R 进行项目组织 [重复]

    这个问题在这里已经有答案了 可能的重复 统计分析和报告撰写的工作流程 https stackoverflow com questions 1429907 workflow for statistical analysis and repor
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • 带 R 的多彩标题

    我想添加颜色某些词在我的图表标题中 我已经能够在这里找到一些先例 http blog revolutionanalytics com 2009 01 multicolor text in r html 具体来说 我希望用撇号括起来的文本 在
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查
  • 非闪亮上下文中的反应式对象绑定

    实际问题 你怎样才能近似反应性环境 行为 http shiny rstudio com tutorial lesson6 建立者shiny http shiny rstudio com函数 或者甚至可能在一个函数中使用这些函数无光泽上下文以
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • Eigen 库 - 矩阵的伪逆(Matlab - pinv)

    我正在尝试使用特征库找到矩阵的伪逆 他们有一个类确实实现了它 但是我不知道如何编写脚本语法 这是它在网站上显示的方式 https eigen tuxfamily org dox classEigen 1 1CompleteOrthogona
  • 过滤DataTable中的空字符串

    如何过滤DataTable中的空字符串 我需要过滤一列 例如名称为 string Empty 的客户名称 我尝试过这个 但我无法进入正确的方式 我需要通过过滤 DataViewDataView RowFilter 那么如何给出过滤字符串st
  • 如何使用word2vec获取给定单词的单词嵌入向量和上下文向量?

    from gensim models import word2vec sentences word2vec Text8Corpus TextFile model word2vec Word2Vec sentences size 200 mi
  • Android - 以编程方式将项目添加到列表视图

    我正在尝试在 android 中创建一个待办事项列表 其中每个项目都是一个复选框 我希望能够在用户 我 添加新任务时以编程方式更新项目列表 有什么建议可以帮助我完成这个任务吗 按照建议记事本教程 http developer android
  • 将一条二次贝塞尔曲线一分为二

    所以我有一个假想的圆 分为多个部分 为了简单起见 我使用 8 但最终 我想将其分为 16 或 32 部分 然后我有 N 条二次贝塞尔曲线 位于两个最近的线段之间 它可以位于圆上或远离中心 但不能比圆更近 我知道如何找到 在巫术线中我应该寻找
  • 官方 kubernetes 教程中的 Ingress 无法正常工作

    我正在关注这个官方的 k8 ingress 教程 https kubernetes io docs tasks access application cluster ingress minikube 但是我无法curlminikube IP
  • Kubernetes Cron Job 在创建下一个计划之前终止 Pod

    我有一个 Kubernetes Cron Job 每 5 分钟运行一次计划任务 我想确保在下一个计划时间创建新的 pod 时 较早的 pod 应该已终止 较早的 Pod 应在创建新 Pod 之前终止 Kubernetes 可以在创建新的 p
  • tr 命令无法直接输出?

    我有一个文件 file txt 女巫有这些条目 NY LA SF 我运行命令 tr n 我需要将所有这些输出放在同一个 file txt 文件中 因此我像这样重定向了输出 tr n 文件 txt 但它没有在 file txt 中放入任何内容
  • lodash:如何压缩具有值的对象数组

    我正在研究如何使用 lodash 压缩具有值的对象数组 包括每个值的新键 尝试过zip https lodash com docs zip zip对象 https lodash com docs zipObject and map http
  • 为什么“string”被认为是“String”的简化版本?

    在C 中我通常使用String当我使用一种方法时string声明变量时 我在其他地方读到这是保持事物清洁的首选方法 这对我来说很有意义 在 Visual Studio 2015 中 当我使用时 我收到了一条以前没有收到过的新消息String
  • 使用 Retrofit 上传图像时出现 FileNotFoundException

    我尝试使用 Retrofit 上传图像 但收到此错误 Unable to submit post to API java io FileNotFoundException document image 30231 open failed E
  • 在plug-in.xml中如何将文件扩展名与eclipse插件中的特定类型编辑器关联

    我正在开发一个 Eclipse 插件 其中当扩展名为 cert 的文件与某种类型的编辑器关联时 该编辑器的实现在 RateBuilderEditor java 中 我想 我必须在plugin xml中提到这一点 我该如何实现这一目标 这个E
  • ASN.1 编译器错误标记“SYNTAX”意外

    我目前正在尝试编译 ASN 1 代码片段 它看起来如下 RFC1213 MIB DEFINITIONS BEGIN IMPORTS experimental FROM RFC1155 SMI OBJECT TYPE FROM RFC 121
  • PostGIS 2.0.0安装GEOS问题

    尝试在 Ubuntu 11 10 上安装 PostGIS 2 0 0 我基本上遵循了此处找到的 OSGeo 说明 http trac osgeo org postgis wiki UsersWikiPostGIS20Ubuntu1110sr
  • 在 Networkx 图中绘制沿着其边缘的标签

    在使用 Networkx 时 我有几条边需要以不同的方式显示 为此 我使用连接样式 有些边是直线 有些是 Arc3 问题是每条边都有一个标签 并且标签不遵循这些样式中的边 我借用了一张图作为例子 usr bin env python3 im
  • F# WPF:处理列表框中的单击事件

    我正在尝试使用 F 和 WPF 创建一个简单的任务调度程序 它基本上只是一个任务列表 其中每个任务都有一个 删除 按钮 处理列表之外的按钮点击不是问题 这可以使用常规命令来处理 但是处理按钮点击in该列表项并不简单 我尝试使用描述的 Rel
  • 如何集成 Firefox 同步?

    Firefox 4 即将推出 好吧 明年 并且有一个 Firefox 插件可以将您的书签等与 Firefox 3 同步 我想知道是否有人有一个全面的 最新的教程来将 Firefox Sync 集成到您自己的插件中 或者对此有什么想法吗 我主
  • play框架中不同浏览器的文件上传

    我正在使用 play 框架来构建一个网站 我还使用了一个名为xheditor http code google com p xheditor Xheditor支持ajax文件上传 它需要服务器端有一个接受包含上传文件的 filedata 参
  • 我可以在 Windows 10 中安装 IE7 和 IE8 吗?

    我正在使用 Windows 10 和 IE 11 我想安装 IE7 和 IE8 来测试 javascript 我点击以下链接下载 IE7 IE8 https www microsoft com en us download internet
  • R:基于“OR”语句的连接

    我正在使用 R 编程语言 假设我有以下两个表 table 1 data frame id c 123 123 125 125 id2 c 11 12 14 13 date 1 c 2010 01 31 2010 01 31 2015 01