检查一个时间间隔内的任何日期是否在另一个时间间隔内的任何日期内

2024-04-11

我有 2 个日期间隔,我想看看是否有任何日期interval_A在之内interval_B。我理想地寻找 dplyr 解决方案。

The data

library(lubridate)

interval_A <- 
new("Interval", .Data = c(20822400, 10454400, 42508800, 18662400, 
12355200, 16243200, 10195200, 14774400, 37324800, 31276800, 27734400, 
62985600, 15724800, 32054400, 21427200), start = structure(c(94953600, 
131328000, 240451200, 294278400, 334454400, 449193600, 493344000, 
546739200, 575596800, 760320000, 930700800, 1088553600, 1481673600, 
1513123200, 1647388800), tzone = "UTC", class = c("POSIXct", 
"POSIXt")), tzone = "UTC")


interval_B <- 
new("Interval", .Data = c(41904000, 15724800, 42163200, 20995200, 
21168000, 47347200, 5184000), start = structure(c(120960000, 
315532800, 362793600, 646790400, 983404800, 1196467200, 1580515200
), tzone = "UTC", class = c("POSIXct", "POSIXt")), tzone = "UTC")


 interval_A
 [1] 1973-01-04 UTC--1973-09-02 UTC 1974-03-01 UTC--1974-06-30 UTC 1977-08-15 UTC--1978-12-20 UTC
 [4] 1979-04-30 UTC--1979-12-02 UTC 1980-08-07 UTC--1980-12-28 UTC 1984-03-27 UTC--1984-10-01 UTC
 [7] 1985-08-20 UTC--1985-12-16 UTC 1987-04-30 UTC--1987-10-18 UTC 1988-03-29 UTC--1989-06-04 UTC
[10] 1994-02-04 UTC--1995-02-01 UTC 1999-06-30 UTC--2000-05-16 UTC 2004-06-30 UTC--2006-06-29 UTC
[13] 2016-12-14 UTC--2017-06-14 UTC 2017-12-13 UTC--2018-12-19 UTC 2022-03-16 UTC--2022-11-19 UTC


interval_B
[1] 1973-11-01 UTC--1975-03-01 UTC 1980-01-01 UTC--1980-07-01 UTC 1981-07-01 UTC--1982-11-01 UTC
[4] 1990-07-01 UTC--1991-03-01 UTC 2001-03-01 UTC--2001-11-01 UTC 2007-12-01 UTC--2009-06-01 UTC
[7] 2020-02-01 UTC--2020-04-01 UTC

我希望使用以下代码可以简单地实现这一点,但这会引发错误:

as.list(interval_A) %within% as.list(interval_B)

Error in as.list(interval_A) %within% as.list(interval_B) : 
  No %within% method with signature a = list,  b = list

另一个解决方案可能是扩展每个日期interval_A并检查它interval_B,但我希望可能有一个更简单的解决方案(而且我不确定是否有一种简单的方法来转换interval_A转换为日期向量)

感谢您的任何想法!


Using sapply()测试每个元素interval_A反对所有要素interval_B:

library(lubridate)

A_in_B <- sapply(interval_A, \(x) any(x %within% interval_B))
A_in_B
# FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

interval_A[A_in_B]
# 1974-03-01 UTC--1974-06-30 UTC

或者,使用 tidyverse 创建包含结果的数据框:

library(lubridate)
library(tibble)
library(purrr)

tibble(
  interval_A,
  in_interval_B = map_lgl(interval_A, ~ any(.x %within% interval_B))
)
# A tibble: 15 × 2
   interval_A                     in_interval_B
   <Interval>                     <lgl>        
 1 1973-01-04 UTC--1973-09-02 UTC FALSE        
 2 1974-03-01 UTC--1974-06-30 UTC TRUE         
 3 1977-08-15 UTC--1978-12-20 UTC FALSE        
 4 1979-04-30 UTC--1979-12-02 UTC FALSE        
 5 1980-08-07 UTC--1980-12-28 UTC FALSE        
 6 1984-03-27 UTC--1984-10-01 UTC FALSE        
 7 1985-08-20 UTC--1985-12-16 UTC FALSE        
 8 1987-04-30 UTC--1987-10-18 UTC FALSE        
 9 1988-03-29 UTC--1989-06-04 UTC FALSE        
10 1994-02-04 UTC--1995-02-01 UTC FALSE        
11 1999-06-30 UTC--2000-05-16 UTC FALSE        
12 2004-06-30 UTC--2006-06-29 UTC FALSE        
13 2016-12-14 UTC--2017-06-14 UTC FALSE        
14 2017-12-13 UTC--2018-12-19 UTC FALSE        
15 2022-03-16 UTC--2022-11-19 UTC FALSE        
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查一个时间间隔内的任何日期是否在另一个时间间隔内的任何日期内 的相关文章

  • 如何在 R 中的另一个函数中使用 `sink` 函数?

    我有一个函数fun依赖于外部函数external 即来自某个包 我如何收集来自的所有警告external在字符向量中 这是一个最小的设置 External function from another package external lt
  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • 再现频率矩阵图

    我想在 R 中重新创建一个情节 情节如下 来源 Boring E G 1941 作为动态平衡的统计频率 心理学评论 48 4 279 这略高于我的工资等级 能力 因此在这里询问 无聊的状态 第一次 A 只能出现 从不 0 或 总是 1 在
  • R 中的 as.numeric 有什么问题? [复制]

    这个问题在这里已经有答案了 gt X864291X8X74 1 8 0000000000 9 0000000000 10 0000000000 6 0000000000 8 0000000000 10 Levels 0 0000000000
  • 按具有作业的组划分的 R 分位数

    我有以下 df group rep seq 1 3 30 variable runif 90 5 0 7 5 df data frame group variable 我需要 i 按组定义分位数 ii 将每个人分配到相对于其组的分位数 因此
  • 当测试集中不存在响应变量时,h2o 预测有时会失败

    当在不存在响应变量的测试集上进行预测时 如果在训练中对因子变量使用一种热编码 则 h2o 会以各种不同的方式失败 无论是在训练 GLM 时隐式指定还是在其他方法中显式指定时 R 3 4 0 和 h2o 3 12 0 1 中存在此错误 我们还
  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • 在ggplotly散点图中添加自定义数据标签

    我想显示Species对于每个数据点 当光标位于该点上方而不是 x 和 y 值时 我用iris数据集 另外 我希望能够单击数据点以使标签持久存在 并且当我在图中选择新位置时标签不会消失 如果可能的话 最基本的是标签 持久性问题是一个优点 这
  • 栅格堆叠后如何写入?

    我想操作几个光栅文件 然后再次写入它们 rasterfiles lt list files C data envi full names TRUE d1 lt overlay stack rasterfiles fun function x
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • 具有动态变量数的公式

    假设有一些 data framefoo data frame想要找到目标列的回归Y由其他一些专栏 为此目的 通常使用一些公式和模型 例如 linear model lt lm Y FACTOR NAME 1 FACTOR NAME 2 fo
  • R:编写抛硬币的随机采样程序

    假设我们有以下情况 有一枚硬币 如果它正面朝上 那么下一次抛掷正面的概率是 0 6 如果是反面 那么下一次抛掷反面的概率也是 0 6 一个班有100名学生 每个学生随机抛掷硬币几次 Student n 的最后一次抛硬币不会影响 Studen
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • 如何使用 sprintf 函数在字符中添加前导“0”而不是空格?

    我正在尝试使用sprintf函数为字符添加前导 0 并使所有字符长度相同 然而我得到的是领先空间 My code a lt c 12 123 1234 sprintf 04s a 1 12 123 1234 我试图得到什么 1 0012 0
  • 在 Shiny 中叠加两个 ggplot

    我有一个非常大的数据集 我正在使用 ggplot 在 Shiny 上绘制它 我有一个与 x 轴上的值相关联的滑块 我想用它对选定的数据子集重新着色 并让其余数据保持原样 最简单的选择是重新创建整个绘图 但由于它是一个大型数据集 因此这是一个
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • 如何有效地将多个光栅 (.tif) 文件导入 R

    我是 R 新手 尤其是在空间数据方面 我正在尝试找到一种方法来有效地将多个 600 单波段栅格 tif 文件导入到 R 中 所有文件都存储在同一文件夹中 不确定这是否重要 但请注意 在我的 Mac 和 Windows 并行 VM 上的文件夹

随机推荐

  • ANDROID:将屏幕分成 2 个相等的部分,并有 2 个列表视图

    我正在尝试将 2 个列表视图放入我的布局中 问题是我事先不知道每个列表视图的大小 第一个列表视图可以有几个项目 0 1 2 最多大约 10 个 第二个列表视图可以有许多项目 最多 100 个 我尝试将两个列表视图的权重设置为 1 但它不起作
  • 将超类中的 @Sql 与子类中的 @Sql 合并

    我有一个带有注释的抽象类 Sql executionPhase ExecutionPhase BEFORE TEST METHOD scripts someScript 我有一个继承自抽象类的测试类 子类也注释为 Sql execution
  • Cron python脚本不执行[重复]

    这个问题在这里已经有答案了 我读过一些关于此的文章 但我无法在其中找到帮助 我有一个使用 smtplib 发送邮件的 python 脚本 从命令行调用时它会起作用 I have usr bin python作为第一行 并且可以使用以下命令运
  • 市政数据集? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找一些数据来创建查找表 具体来说 美国每个州的所有县以及每个县的所有城市 我在哪里可以找到这样的市政数据集 编辑 我正在查看 census g
  • 为什么 subprocess.Popen 不起作用

    我尝试了很多事情 但由于某种原因我无法让事情发挥作用 我正在尝试使用 Python 脚本运行 MS VS 的 dumpbin 实用程序 这是我尝试过的 以及对我不起作用的 1 tempFile open C Windows temp tem
  • difflib.SequenceMatcher isjunk 参数未考虑?

    在 python difflib 库中 SequenceMatcher 类的行为是否异常 或者我是否误读了假定的行为 为什么 isjunk 论点在这种情况下似乎没有任何区别 difflib SequenceMatcher None AA A
  • 错误“无法推断 (a ~ b)”是什么意思?

    我正在修改以下代码作为作业的一部分 rand Random a gt State StdGen a rand do gen lt get let x gen random gen put gen return x 我被要求写一个函数rand
  • onReceive 方法没有被调用

    public class BroadcastTest extends Activity BroadcastReceiver receiver Called when the activity is first created Overrid
  • React Router 3,与查询参数完全匹配

    在 React Router 3 中 如何精确匹配包含查询参数的路由 像这样的事情
  • 无法推送到 Codeplex 上的 Hg 项目

    我正在尝试对使用 Mercurial 的 Codeplex 项目进行更改 我收到以下错误 中止 HTTP 错误 500 找到放弃的事务 运行 hg recovery 我在我的家用电脑上尝试过 但遇到了同样的错误 我运行 hg recover
  • Django站点地图索引分页URL格式

    我创建了一个站点地图索引 https docs djangoproject com en dev ref contrib sitemaps creating a sitemap index对于我的 Django 站点 因为我有超过 50k
  • 病毒或机器故障导致“无法创建Java虚拟机”?

    我用的是双核XP机安装了 4GB 内存 但仅2 5GB由于 32 位事实 由操作系统报告 我正在积极修改旧的 JAVA 应用程序至少一个月 使用最新的Eclipse 编辑 构建和运行 和Ant 另一种构建和运行的方式 在里面Eclipse运
  • 当用户切换选项卡时暂停 html5 视频

    我的网页上嵌入了一个 HTML5 视频
  • VBA在指定范围内查找指定单元格值并选择它

    我在创建一个宏时遇到问题 该宏将在 信息 工作表的范围内找到活动工作表中的指定值 如果在范围内找不到单元格值 那么它会给我一个消息框 指出 未找到值 我有以下内容 但它不起作用 Sub testrot Dim i As String Dim
  • 匹配元组作为映射的输入

    尝试对映射中的元组进行模式匹配 fn main let z vec 1 2 3 4 let sums z iter map a b a b println sums 产生错误 error E0308 mismatched types gt
  • 如何在 R 中处理 BigINT [重复]

    这个问题在这里已经有答案了 我有一个 BigInt 数字 如果我尝试将其存储在 R 中 R gt a lt 9223372036854775807 R gt a 1 9 223372e 18 正如您所注意到的 它丢失了最后几位数字的信息 我
  • 带有忽略大小写的 JDBC URL 不适用于 H2 数据库连接

    我试图在 SQL 模式下使用 h2 数据库 我能够创建一个全部大写的模式 并在其下创建一些表 但是 除非我匹配所有大写的架构名称 否则我在休眠上运行的应用程序似乎无法工作 我认为 h2 可以在 JDBC 连接字符串中使用 IGNROECAS
  • 如何在 WordPress 多站点设置中显示来自其他站点的帖子?

    我使用 WordPress 3 0 的多站点功能设置了一个小型站点网络 我想创建另一个网站 从其他各个网站中提取某些帖子进行显示 这个新的 中心 站点对于用户来说似乎是它自己的独立站点 具有域映射 但其内容来自其他站点的帖子 如何在 Wor
  • 在 ionic v1 中滚动到 div 时使其固定

    我试图在滚动到 div 时修复它 但问题是我尝试定位的 div 位于 ion content 中 并且它不允许我使用简单的 jQuery 或 CSS 解决方案来实现此功能 根据我读过的答案 离子内容的滚动部分正在扰乱它的工作 我很好奇与这个
  • 检查一个时间间隔内的任何日期是否在另一个时间间隔内的任何日期内

    我有 2 个日期间隔 我想看看是否有任何日期interval A在之内interval B 我理想地寻找 dplyr 解决方案 The data library lubridate interval A lt new Interval Da