如何根据 2 列中的值给出的日期范围删除行?

2024-01-01

我有一个包含一系列日期的数据集,需要在新行中填写缺失的日期。df1是我正在使用的数据的示例df2是我设法实现的目标(我陷入困境的地方)的一个例子。df3这就是我想要结束的地方!

df1
ID     Date       DateStart     DateEnd
1      2/11/2021  2/11/2021     2/17/2021
1      2/19/2021  2/19/2021     2/21/2021
2      1/15/2021  1/15/2021     1/20/2021  
2      1/22/2021  1/22/2021     1/23/2021  

这就是我的处境。 NA 不是问题,因为我打算在完成我需要做的事情后删除 DateStart 和 DateEnd 列。这里的问题是我不想包含之前的 DateStart 和 DateEnd 范围内的日期。 为了到达这里,我按 ID 分组并填写了日期之间缺少的日期df1:

df2
ID     Date       DateStart     DateEnd
1      2/11/2021  2/11/2021     2/17/2021
1      2/12/2021  NA            NA
1      2/13/2021  NA            NA
1      2/14/2021  NA            NA
1      2/15/2021  NA            NA
1      2/16/2021  NA            NA
1      2/17/2021  NA            NA
1      2/18/2021  NA            NA
1      2/19/2021  2/19/2021     2/21/2021
2      1/15/2021  1/15/2021     1/20/2021
2      1/16/2021  NA            NA
2      1/17/2021  NA            NA
2      1/18/2021  NA            NA
2      1/19/2021  NA            NA
2      1/20/2021  NA            NA
2      1/21/2021  NA            NA
2      1/22/2021  NA            NA    
2      1/23/2021  1/23/2021     1/24/2021  

这实际上是我想要的最终结果:

df3
ID     Date       DateStart     DateEnd
1      2/11/2021  2/11/2021     2/17/2021
1      2/18/2021  NA            NA
1      2/19/2021  2/19/2021     2/21/2021
2      1/15/2021  1/15/2021     1/20/2021
2      1/21/2021  NA            NA
2      1/22/2021  NA            NA    
2      1/23/2021  1/23/2021     1/24/2021  

In df3缺失的日期将被填充,但不会填充 DateStart-DateEnd 范围内的日期。

关于如何实现这一目标有什么想法吗?注意:我有一个包含大量观察结果的数据集。


  • 将日期列转换为日期类。

  • 对于每个ID use complete从最小值创建日期序列DateStart最多为DateEnd.

  • fill the NA先前的非 NA 值,除非Date > DateEnd.

  • 对于每组ID, DateStart and DateEnd保持行与NA每组中的值或行号 1。

library(dplyr)
library(tidyr)

df %>%
  mutate(across(-ID, lubridate::mdy)) %>%
  group_by(ID) %>%
  complete(Date = seq(min(DateStart), max(DateEnd), by = '1 day')) %>%
  fill(DateStart, DateEnd) %>%
  ungroup %>%
  mutate(across(c(DateStart, DateEnd), ~replace(., Date > DateEnd, NA))) %>%
  group_by(ID, DateStart, DateEnd) %>%
  filter(is.na(DateStart) | row_number() == 1)

#     ID Date       DateStart  DateEnd   
#  <int> <date>     <date>     <date>    
#1     1 2021-02-11 2021-02-11 2021-02-17
#2     1 2021-02-18 NA         NA        
#3     1 2021-02-19 2021-02-19 2021-02-21
#4     2 2021-01-15 2021-01-15 2021-01-20
#5     2 2021-01-21 NA         NA        
#6     2 2021-01-22 NA         NA        
#7     2 2021-01-23 2021-01-23 2021-01-24

data

df <- structure(list(ID = c(1L, 1L, 2L, 2L), Date = c("2/11/2021", 
"2/19/2021", "1/15/2021", "1/23/2021"), DateStart = c("2/11/2021", 
"2/19/2021", "1/15/2021", "1/23/2021"), DateEnd = c("2/17/2021", 
"2/21/2021", "1/20/2021", "1/24/2021")), 
class = "data.frame", row.names = c(NA, -4L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 2 列中的值给出的日期范围删除行? 的相关文章

  • 如何在 R 中的 dygraph 标题中使用 UTF-8 字符

    使用 Rstudio Windows8 当我使用 dygraph 函数绘制时间序列时 在尝试在主标题中使用 UTF 8 字符时遇到问题 library dygraphs dygraph AirPassengers main T tulo 这
  • 扩展数据框以使其具有与原始行中两列的范围一样多的行[重复]

    这个问题在这里已经有答案了 我有一个数据框如下 structure list symbol c u n v i a start c 9L 6L 10L 8L 7L end c 14L 15L 12L 13L 11L Names c symb
  • 如何像在facet_grid中一样在facet_wrap中定位条带标签

    我想在使用时删除多余的条带标签facet wrap 并用两个变量进行分面 并且都是自由尺度的 例如 这个facet wrap下图的版本 library ggplot2 dt lt txhousing txhousing year in 20
  • 无法编译包“maps”

    当我安装 maps 包时 安装中出现警告 ld warning ignoring file Library Developer CommandLineTools SDKs MacOSX10 14 sdk usr lib libSystem
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 如何使用 dplyr 管道将额外参数传递给 purrr::map

    我有以下数据框和功能 param df lt data frame x 1 3 0 1 y 3 1 0 2 param df gt x y gt 1 1 1 2 8 gt 2 2 1 1 8 gt 3 3 1 0 8 my function
  • rpart 决策树中的 rel 误差和 x 误差有什么区别? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个来自 UCI 机器学习数据库的纯分类数据框https archive ics uci edu ml datasets Diabet
  • 使用非标准评估公式

    我正在创建一个使用的包非标准评价 http adv r had co nz Computing on the language html跟踪列的含义 该包在函数之间传递数据框 这些函数执行同一组列的各种操作 非标准评估对此非常有用 my s
  • 上传到 Shiny 服务器后在 R 中解压文件

    我正在尝试在我们的本地服务器上使用 Shiny 来构建一个应用程序 允许用户上传包含 ESRI shapefile 和关联文件的 zip 文件 Shiny 服务器的 fileInput 可以获取数据 并且当它这样做时 它会将其存储在临时目录
  • 如何使用 ggplot2 将 IPCC 点画添加到全球地图

    我需要将 IPCC style 点画添加到全球地图中 如下所示这个帖子 https stackoverflow com questions 11736996 adding stippling to image contour plot 不过
  • tidyverse - 将命名向量转换为 data.frame/tibble 的首选方法

    使用tidyverse我经常面临将命名向量转换为向量的挑战data frame tibble列是向量的名称 执行此操作的首选 tidyverse 方式是什么 编辑 这与 this https github com hadley dplyr
  • 在 R 中显示变量的精确值

    gt x lt 1 00042589212565 gt x 1 1 000426 如果我想打印的确切值x 我该怎么办呢 抱歉 如果这是一个愚蠢的问题 我尝试在谷歌上搜索 R 和 精确 或 圆形 但我得到的只是有关如何舍入的文章 先感谢您 所
  • ggplot geom_bar - 条形太宽

    对于这个非信息性的标题 我感到很抱歉 gt y read csv textConnection scan sep n what raw org art type length 191 gk Finish short 4 147 ik Att
  • 用于安装 R 软件包的备用编译器:clang:错误:不支持的选项“-fopenmp”

    我正在尝试在 OS X 10 11 6 上使用 R 版本 3 4 0 安装 rJava 包 install packages rJava type source 我收到以下错误 clang o libjri jnilib Rengine o
  • 导入 .sav 时出现警告/错误

    我工作中有两个版本的 SPSS SPSS 11 在 Windows XP 上运行 SPSS 20 在 Linux 上运行 SPSS 的两个副本都工作正常 使用任一版本的 SPSS 创建的文件在其他版本的 SPSS 上打开时不会出现任何问题
  • autoplot.microbenchmark 实际绘制了什么?

    根据文档 microbenchmark autoplot 使用 ggplot2 生成更清晰的微基准计时图 凉爽的 让我们尝试一下示例代码 library ggplot2 tm lt microbenchmark rchisq 100 0 r

随机推荐

  • 包括实体框架 TPH 类的导航属性

    我有一个 EF 层次结构 大大简化 如下所示 class Room EntityCollection
  • 无锁队列实现最终会在压力下产生循环

    我有用 C 语言编写的无锁队列 其形式为链表 其中包含来自多个线程的请求 这些请求发布到单个线程并在单个线程中处理 经过几个小时的压力后 我最终让最后一个请求的下一个指针指向自身 这创建了一个无限循环并锁定了处理线程 该应用程序在 Linu
  • 如何让 rmagick 在带有 Rails 3.1 和 Carrierwave 的 Windows 7 64 位上工作?

    我无法让 rmagick 在 Windows 上工作 有谁知道如何让它正常工作 更好的是 希望以一种与生产环境兼容的方式 尽管我会尽我所能 C gt gem install rmagick platform ruby with opt li
  • 为什么Eclipse无法写入资源

    Eclipse 无法签署我的应用程序 但旧版本工作正常 它只是在下面显示警告 这是 juno 版本中的错误吗 无法写入资源 META INF MANIFEST MF 重复的 zip 条目 ARMPlugin jar META INF MAN
  • CAS 冲突的 CPU 内部特征是什么?

    我正在尝试了解 x86 x64 上 CAS 的低级机制 我非常感谢一些帮助 见解 我一直在思考这个问题的原因是我试图推理指数退避 并原则上找出正确的退避延迟单位应该是什么 如果我查看无锁空闲列表基准测试 没有指数退避 我会发现随着线程数量的
  • DataTables 根据 TD 属性值对 html 表进行排序

    我正在使用 DataTables jquery 库来显示简单的 HTML 表标记 即不使用 Ajax 或 JSON 一切都运行良好 只是我有一些列我想对原始数据进行排序 而不是对显示的格式化数据进行排序 我想向我的 TD 标签添加一个属性
  • OAuth 2.0授权码Grant中“code”的生命周期

    授权代码授予 我知道该代码是与真正的长期访问令牌交换的短期令牌 我已经经历了认证2 0 https www rfc editor org rfc rfc6749 section 4 1 1但找不到此信息 所以在这里询问 代码的生命周期是怎样
  • 从会话到成员文件夹的身份验证

    我之前在 c asp net webforms 中设置了成员文件夹 仅允许某些用户并在用户未经身份验证时进行重定向 我想知道这是否可能 如何根据会话变量存在 填充值 的天气来实现身份验证 或者如果会话为空则不进行身份验证 我希望类似的事情能
  • 使依赖对象属性可绑定为静态资源?

    如何使依赖对象属性数组可绑定以便以后绑定为静态资源 我现在拥有的代码似乎是我的DependencyObject绕过依赖属性系统 我有以下课程 public class ValueMarker DependencyObject public
  • '+' 已弃用:混合类型加法在 Swift 3.1 中已弃用

    当我直接将整数值 即 1 2 3等 与另一个整数变量相加时 let arr Array One Two var valueT Int64 0 value arr count 1 in this line 我收到以下警告 is depreca
  • 如何使用 APNs Auth Key 和标准 CLI 工具发送 APNs 推送消息?

    Apple 最近向 APNS 添加了一种新的身份验证方法 Apple 推送通知身份验证密钥 沙盒和生产 https stackoverflow com questions 39671902 apple push notification a
  • rstudio 0.98.501 中 knit html 按钮背后的代码是什么?

    我听从了 Rstudio 的建议自定义 Markdown 渲染 https www rstudio com ide docs authoring markdown custom rendering 并在项目目录的根目录下创建了一个 Rpro
  • Pandas 报告分组和枢轴中的前 n 名

    我试图通过沿单个维度 d1 分组并报告 d1 的每个元素的摘要统计信息来总结数据框 我特别对许多指标的前 n 个 索引和值 感兴趣 我想为 d1 的每个元素生成一行 假设我有两个维度 d1 d2 和 4 个指标 m1 m2 m3 m4 1
  • 删除 QListWidgetItem: QListWidget::takeItem(item) 与删除项目

    删除给定的QListWidgetItem item from a QListWidget lst我可以使用以下代码 摘自这个答案 https stackoverflow com a 25418363 1485885 delete lst g
  • Golang导入路径最佳实践

    我目前正在使用 Golang 开发一个私人项目 我是新手 但我有一个问题 我不知道定义的正确方法是什么import path对于本地包 我和这个链接的作者有同样的感觉https medium com c9s golang the annoy
  • std::ofstream::close() 实际上做了什么?

    这个问题 如何保护日志免受应用程序崩溃的影响 https stackoverflow com questions 16267984 how to protect log from application crash把我引向另一个 什么意思s
  • CORONA:timer.cancel() 返回“尝试索引 nil 值”

    我试图取消在另一个 触摸事件 函数内的 触摸事件 函数中启动的计时器 如下所示 local function startNewGame event if event phase ended then local function anima
  • 将类添加到 d3js 树布局中的根节点

    我正在玩 d3 js 树布局 我正在关注this http bl ocks org d3noob 8375092例子 我试图向每个节点添加类属性 如何将一个类添加到根节点并将不同的类添加到子节点 var treeData name Top
  • 自定义 UIPopoverBackgroundView:没有阴影

    我用过这个好tutorial http thinkvitamin com code ios customizing the design of uipopovercontroller 创建自定义 UIPopoverBackgroundVie
  • 如何根据 2 列中的值给出的日期范围删除行?

    我有一个包含一系列日期的数据集 需要在新行中填写缺失的日期 df1是我正在使用的数据的示例df2是我设法实现的目标 我陷入困境的地方 的一个例子 df3这就是我想要结束的地方 df1 ID Date DateStart DateEnd 1