按日期范围连接表[重复]

2024-02-07

我正在寻找按日期范围连接两个表的简单方法。一个表包含确切的日期,另一个表包含两个标识时间段开始和结束的变量。如果第一个表中的日期在第二个表的范围内,我需要连接表。

data1 <- data.table(date = c('2010-01-21', '2010-01-25', '2010-02-02', '2010-02-09'),
                name = c('id1','id2','id3','id4'))


data2 <- data.table(beginning=c('2010-01-15', '2010-01-23', '2010-01-30', '2010-02-05'), 
                ending = c('2010-01-22','2010-01-29','2010-02-04','2010-02-13'),
                class = c(1,2,3,4))

result <- data.table(date = c('2010-01-21', '2010-01-25', '2010-02-02', '2010-02-09'),
                 beginning=c('2010-01-15', '2010-01-23', '2010-01-30', '2010-02-05'), 
                 ending = c('2010-01-22','2010-01-29','2010-02-04','2010-02-13'),
                 name = c('id1','id2','id3','id4'),
                 class = c(1,2,3,4))

有什么帮助吗?我发现了一些困难的例子,但由于格式原因,它们甚至无法处理我的数据。我需要类似的东西:

select * from data1
left join
select * from data2
where data2.beginning <= data1.date <= data2.ending

Thanks


我知道下面的内容在基础上看起来很糟糕,但这是我想出的。最好使用“sqldf”包(见下文)。

library(data.table)
data1 <- data.table(date = c('2010-01-21', '2010-01-25', '2010-02-02', '2010-02-09'),
                    name = c('id1','id2','id3','id4'))


data2 <- data.table(beginning=c('2010-01-15', '2010-01-23', '2010-01-30', '2010-02-05'), 
                    ending = c('2010-01-22','2010-01-29','2010-02-04','2010-02-13'),
                    class = c(1,2,3,4))

result <- cbind(data1,"beginning"=sapply(1:nrow(data2),function(x) data2$beginning[data2$beginning[x]<data1$date & data2$ending[x]>data1$date]),
            "ending"=sapply(1:nrow(data2),function(x) data2$ending[data2$beginning[x]<data1$date & data2$ending[x]>data1$date]),
            "class"=sapply(1:nrow(data2),function(x) data2$class[data2$beginning[x]<data1$date & data2$ending[x]>data1$date]))

使用 sqldf 包:

library(sqldf)
result = sqldf("select * from data1
                left join data2
                on data1.date between data2.beginning and data2.ending")

使用 data.table 这很简单

data1[data2, on = .(date >= beginning, date <= ending)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按日期范围连接表[重复] 的相关文章

  • 如何用R创建时间散点图?

    数据是一系列日期和时间 date time 2010 01 01 09 04 43 2010 01 01 10 53 59 2010 01 01 10 57 18 2010 01 01 10 59 30 2010 01 01 11 00 4
  • 如何在ggplot2中正确使用facet_grid?

    我试图使用以下代码为每个配置文件生成一个图表 但我不断收到 至少一层必须包含用于分面的所有变量 错误 我花了最后几个小时试图让它发挥作用 但我做不到 我相信答案一定很简单 有人可以帮忙吗 d structure list category
  • 将函数应用于数据框的所有元素

    我正在尝试对数据框中的所有元素应用一些转换 当使用常规应用函数时 我得到一个矩阵而不是数据帧 有没有办法直接获取数据框而不添加as data frame到每一行 df data frame a LETTERS 1 5 b LETTERS 6
  • 删除数据框值的后缀

    我有一个这样完成的数据框 a b c 1 2011 mal ID9 2 2012 yesterday ID10 3 2010 misch ID10 4 1995 ship ID9 5 2008 se ID9 6 1998 falling I
  • data.table() 仍然将字符串转换为因子吗?

    据我所见我假设 data table v1 8 0 不会自动将字符串转换为因子 具体来说 引用该页面中的 Matthew Dowle 的话 不需要 stringsAsFactors 在 v1 8 0 中这样做 现在键中允许使用 o 字符列
  • R 线图上的两个数据集,但使用相同的 X 和 Y 轴?

    我正在尝试在 R 中的图表上绘制两条线 数据与死囚区相关 CSV 有三列 第一列是年份 第二列是死囚区人口 第三列是当年的处决数量 我已经到了可以画两条 X 轴相同的线的地步 但由于值的范围相互重叠 Y 轴变得混乱 举个例子 每个给定的年份
  • Rscript 正在绘制 PDF

    我有一个简单的R http en wikipedia org wiki R 28programming language 29脚本 当它通过 Rscript exe 运行时 默认情况下它会绘制为 PDF 文件 我希望脚本打开一个绘图窗口 我
  • 为什么 ggplot2 图例不结合手动填充和缩放值?

    预期行为 如果我用 ggplot2 创建一个绘图并使用单独的形状和填充比例来描绘数据 我希望图例会在 白色 填充点 看起来是空心的 和 黑色 填充点 看起来不空洞的 在下面的示例代码中 Windows 的图例项应为白色空心点 Linux 的
  • 如何在不指定数据集的情况下调整函数

    我有一个函数 基本上可以过滤SPV行 如下所示 请注意 我这样做return coef lt function df1 idd dmda CategoryChosse 然而 我不希望df1作为函数的参数 而是函数的属性df1数据集 在本例中
  • 循环遍历列并将字符串长度添加为新列

    我有一个包含多列的数据框 并且希望为每个列输出一个单独的列 其中包含每行的长度 我试图迭代列名称 并为每列输出一个附加有 length 的相应列 例如 col1 col2 将转到 col1 列2 col1 长度 列2 长度 我正在使用的代码
  • 当服务器时区不是 UTC 时,从 Java 中的 MySQL 检索 UTC DATETIME 字段

    我正在尝试编写代码以使用 Java 和 MySQL 与第三方开发的数据库进行互操作 该数据库有一个字段 用于存储时间戳DATETIME字段作为 UTC 日期 运行数据库和客户端的服务器的时区设置为非 UTC 时区 Europe London
  • 在 R 中使用两个 for 循环创建矩阵/数据框

    这是我在 SO 上的第一篇文章 所以请友善 我的问题与这个问题隐约相关 R中的双for循环创建矩阵 https stackoverflow com questions 44376020 double for loop in r creati
  • 展平 ggplot2 中的 alpha 通道

    ggplot2 的某些对象 函数 支持 alpha 通道 http docs ggplot2 org current geom point html http docs ggplot2 org current geom point html
  • lme4:如何指定 2 个与随机截距的相关性,而不添加随机斜率之间的相关性

    重新发布自stats stackexchange com https stats stackexchange com q 195385 33560 我试图在 R 的 lme4 包中指定一个模型 其中随机截距和随机斜率之间有 2 个相关性 但
  • 如何规划庭院灯最有效的路线

    我正在尝试挂一些庭院灯 基于另一个问题 https cs stackexchange com questions 80134 christmas light route efficiency我问 我意识到我需要一种算法来解决路由检查问题 h
  • 不同的分位数:箱线图与小提琴图

    require ggplot2 require cowplot d iris ggplot2 ggplot d aes factor 0 Sepal Length geom violin fill black alpha 0 2 draw
  • R 在 Ubuntu 中通过代理连接

    我在 Ubuntu 12 04 上安装了 RStudio 0 97 168 当我尝试安装 gstat 库时出现以下错误 install packages gstat dependencies TRUE Warning in install
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 在 RStudio 控制台中显示西里尔字母

    我在 Rstudio 控制台中显示俄语字符时遇到问题 我使用 readxl 包加载带有俄语的 Excel 文件 西里尔字母在数据框中正确显示 但是 如果我运行一个输出包含变量名称的函数 RStudio 控制台将显示符号而不是正确的西里尔字符
  • corr.test 与 cor.test p 值

    我正在尝试使用 psych 包 psych 1 6 9 中的 corr test 但在使用 method spearman 时 它似乎给出了与 cor test 不同的 p 值 相关系数相同 但 p 值不同 我整理了一些示例代码和输出 如下

随机推荐

  • 在启用共享配置的 IIS 7+ 上安装 Web Deploy

    我们有一个在 Windows 2008R2 上运行 IIS 7 5 的网络场环境 我们使用共享配置和网络存储复制 我们尝试在其中一台服务器上安装 Web Deploy v3 5 但收到一条错误消息 指出共享配置不支持 Web Deploy
  • Newtonsoft.Json 在序列化数组的中间添加省略号 (...)

    这是一个非常奇怪的行为Newtonsoft Json的序列化功能 我几乎尝试了所有方法 例如 我没有继续使用 NET Reflector 一步步完成Newtonsoft Json dll汇编的算法 Symptoms 情况如下 我有一个小的
  • 如何从 C# 代码隐藏生成 sql 脚本文件?

    如何从 C 代码隐藏生成 sql 脚本文件 脚本文件将包含create and drop数据库中存储过程的语句 如何在 C 中从 db 生成脚本并写入 sql 文件 是否可以在C 中从数据库生成表或storedproc的创建和删除语句的脚本
  • 当他们说 LINQ 可组合时,他们是什么意思?

    它是什么意思 为什么 如果有的话 它很重要 这意味着您可以向查询添加其他 运算符 这很重要 因为您可以非常有效地完成它 例如 假设您有一个返回员工列表 可枚举 的方法 var employees GetEmployees 另一种方法使用该方
  • Docker 如何在启动时运行 /usr/sbin/init 以及其他脚本 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Dockerfile FROM centos 7 COPY docker entrypoint sh data ENTRYPOINT da
  • 保存更改并发布后,Google App 脚本未更新

    我遇到了一个奇怪的问题 我创建了一个示例谷歌应用程序脚本 然后将其发布为网络应用程序 发布的 URL 为 XXXXX 格式 虽然我对脚本进行了一些更改并将其重新部署为 Web 应用程序 但它确实显示了当前部署的 Web 应用程序 URl 而
  • 使用 JavaScript 从二进制文件读取字节,无需 jQuery

    我正在尝试制作一个 javascript 模拟器 并且我希望它非常轻 所以我不想使用 jQuery 和 jDataView 加载 ROM Si 我用纯 JS 制作了自己的 ROM 加载器 它工作得很好 感谢这个网站上的许多主题 但是 IE
  • 转换 Spring Data JPA 页面内容的类型

    我正在使用 Spring Data JPA 并且我有一个PagingAndSortingRepository
  • 使用rvm、ruby 1.9.2、bundler和passenger的“未初始化常量编码”

    我在这里无计可施 正在向大家寻求有关 f 编码问题的帮助 我在 Dreamhost 上具有 root 权限的私人服务器上运行 这是关于我的环境和版本的一些信息 which ruby v ruby 1 9 2p180 2011 02 18 r
  • JPA中原生查询的字段值

    如何获取本机查询 JPA 中某些字段的值 例如我想获取客户表的姓名和年龄 Query q em createNativeQuery SELECT name age FROM customer WHERE id 注意 我不想将结果映射到实体
  • 我应该在 R 中哪里设置变量 PATH?

    我经常需要在 R 中调用 Tex Live 二进制文件进行编译 但是 在升级 Tex Live 发行版后 需要在 R 中手动更新当前二进制文件的路径PATH Sys getenv PATH 多变的 作为 Ubuntu 系统上的单个用户 我应
  • 字符串是否需要转换字节顺序?

    发送和接收字符串时是否需要转换为网络 主机字节顺序 可用函数 例如 htons 仅适用于 16 位和 32 位整数 我还知道一个事实 单个字符不应该产生影响 因为通常它是一个字节大 但是字符串呢 下面是一个代码片段 int len recv
  • Sql Server——去掉非数字字符

    我有一张桌子 SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO CREATE TABLE dbo TestAB A int IDENTITY 1 1 NOT NULL B nvarchar 1
  • tf 签入特定文件夹

    在 Visual Studio 的 checkin 命令文档中 它说 不使用 签入 对话框签入对单个项目的更改 c code SiteApp Main gt tf checkin program cs noprompt 如何查看特定文件夹
  • 以编程方式显示文本视图选取框

    尝试从数组填充文本视图 我通过下面的代码设法通过 XML 获得了所需的效果
  • 如何检查 Backbone.View 当前是否在 DOM 中呈现?

    我想检查 Backbone View 当前是否在 DOM 中渲染 如果没有 我不必重新渲染它 我可以以某种方式检查一下吗 Regards 好吧 理论上你可以查询 DOM 来找出答案 但这比仅仅设置一个实例变量并在渲染之前查询要慢得多 另一方
  • TabView 的 SwiftUI 动画选项卡

    在 SwiftUI 中使用 TabView 时 是否可以修改选项卡选择之间的转换 目前 当选择不同的选项卡时 转换非常突然 居然瞬间突然 哎哟 例如 给定以下情况 TabView Text The First Tab tabItem Ima
  • LDA和主题模型

    我研究了几个星期的LDA和Topic模型 但是由于我的数学能力很差 我不能完全理解它的内部算法 我使用了GibbsLDA实现 输入大量文档 并将主题数设置为100 我得到一个名为 final theta 的文件 它存储每个文档中每个主题的主
  • CakeEmail 如何在堆栈跟踪之前确定失败?

    我试图捕获电子邮件失败的时间 以便我可以将所需的数据保存在我的数据库中 并且可以尝试稍后发送 我认为以下内容应该像使用时一样工作save if email gt send success works else fail never gets
  • 按日期范围连接表[重复]

    这个问题在这里已经有答案了 我正在寻找按日期范围连接两个表的简单方法 一个表包含确切的日期 另一个表包含两个标识时间段开始和结束的变量 如果第一个表中的日期在第二个表的范围内 我需要连接表 data1 lt data table date