计算每年两个日期之间的天数

2023-12-07

我有一个数据框,每行都有开始日期和结束日期。我想计算两个日期之间的天数并按年份分割。 所以从这里开始:

id <- c(1,2,3)
start <- as.Date(c('01/01/2015','01/01/2016','07/01/2015'), format = '%m/%d/%Y')
end <- as.Date(c('12/31/2016','12/31/2016','12/31/2016'), format = '%m/%d/%Y')
df <- data.frame(id, start, end)
id Start End
1 01/01/2015 12/31/2016
2 01/01/2016 12/31/2016
3 01/07/2015 12/31/2016

To this:

id Start End days_no. year_2015 year_2016
1 01/01/2015 12/31/2016 730 365 365
2 01/01/2016 12/31/2016 365 0 365
3 07/01/2015 12/31/2016 548 183 365

感谢任何帮助,请注意我想动态计算年度统计数据,在我的实际案例中我可能会得到很多年的列...我猜 lubridate 可能会有所帮助,但我不确定从哪里开始。


这是一个基本 R 选项

transform(
  df,
  days_no = end - start,
  year_2015 = pmax(as.Date("2015-12-31") - start, 0),
  year_2016 = pmax(end - as.Date("2016-1-1"), 0)
)

这使

  id      start        end  days_no year_2015 year_2016
1  1 2015-01-01 2016-12-31 730 days  364 days  365 days
2  2 2016-01-01 2016-12-31 365 days    0 days  365 days
3  3 2015-07-01 2016-12-31 549 days  183 days  365 days
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算每年两个日期之间的天数 的相关文章

随机推荐

  • 将 PHP 变量从一个页面传递到另一个页面,再传递到另一个页面 [重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中将值从页面传递到另一个页面 例如 我有3页 第一页将是一个常规的 HTML 登录页面 将要求输入用户名 第二页将通过 POST 函数获取此用户名变量并分配一个 php 变量 例如 use
  • Worklight http 适配器问题

    2个简单的问题 通过 http 适配器发出的所有 http 请求是否都会首先通过 worklight 服务器 如果是这样 那么是否意味着即使是对公共网站的 http 适配器请求 例如对 yahoo 网站的股票价格请求 也会首先通过 work
  • 自定义 XYJfree 图表中的条形颜色

    如何用不同的颜色绘制不同的条形 我尝试使用渲染器 这是我的示例代码 public IntervalXYDataset createDataset throws InterruptedException parseFile final XYS
  • .NET Standard 2.0 使用的兼容性填充程序

    概述 example NET Standard 2 0 表示它现在使用某种兼容性填充程序来修复第三方库兼容性问题 因此 您可以将第三方库与 NET Standard 一起使用 直到它不使用 NET Standard 没有的任何 API 不清
  • 如果 iCloud 设置为不同步提醒,则无法创建本地 EKCalendar(提醒)

    这里遇到了一个非常奇怪的问题 在我看来这是 EventKit API 的问题 我只是想检查一下我没有做什么 测试用例1 在应用程序的隐私中启用提醒 该设备有 iCloud 帐户 但设置为不同步提醒 我可以创建一个localApple 的 提
  • 从列表集合中删除重复项

    希望可以有人帮帮我 我正在使用 c 并且对它有点陌生 我正在将一个文本文件加载到我的应用程序中 并将数据拆分为 我正在将字符串的一部分读入
  • Android 设备上短信的默认字符集/编码是什么?

    如果有必要保持简单的话 我主要关心北美的英语手机 具体来说 当发送 接收短信和彩信时 字符是如何编码的 有区别吗 我的初步研究表明UTF 8是默认值 但我也看到了对US ASCII对于美国设备和其他区域设置的其他字符集 Quote 平台默认
  • 如何重新启动 TimerTask

    我编写了一个任务来通过套接字发送特定的 TCP 消息 我有一个包含一堆消息和一些时间戳的文件 因此我将该任务编程为 TimerTask 并使用具有第一个消息时间戳的计时器对其进行调度 当它完成时 任务运行方法结束 但其关联的线程仍然存在 并
  • AFNetworking 2.0下载多张图片完成

    我正在尝试找出一种使用 AFNewtorking 2 0 下载多个图像的方法 我在这里读了很多帖子 但找不到我正在寻找的答案 希望你们能帮助我 问题是我想知道所有下载何时完成以及所有图像是否已下载 所以我有一个带有图像 URL 的数组 蚂蚁
  • SQL 合并时出现 ORA-38104 错误的原因是什么?

    我有这样的代码 MERGE INTO target table tgt USING source table src on tgt c1 src c1 WHEN MATCHED THEN UPDATE SET tgt c1 src c2 I
  • 根据跨越边界的数量,用颜色突出显示超过或低于阈值的 matplotlib 点

    我有一个如下所示的图表 我为获取该图 8 个图的序列之一 而运行的代码如下 date list list df testing set date unique random date list list np random choice d
  • JSON4s 找不到带 Spark 的构造函数

    我在尝试在 Spark 作业中解析 json 时遇到了问题 我使用的是 Spark 1 1 0 json4s 和 Cassandra Spark 连接器以及 DSE 4 6 抛出的异常是 org json4s package Mapping
  • 适当的CSS以确保body元素填满整个屏幕

    我的身体元素有问题 似乎 100 占满了屏幕 但是 如果您将浏览器拖动得较小 然后向下滚动 则主体不会扩展 请参见这个jsFiddle作为一个很好的例子 height 100 是您网站显示的窗口的高度 而不是网站的高度 这会导致向下滚动时背
  • TPL数据流处理N条最新消息

    我正在尝试创建某种队列来处理收到的 N 个最新消息 现在我有这个 private static void SetupMessaging messagingBroadcastBlock new BroadcastBlock
  • 页面加载超时 - 使用 C# 的 Selenium Webdriver

    我正在使用 Selenium 2 25 WebDriver 我在查找页面上的元素时遇到问题 有时我的测试用例能够找到元素 有时页面未加载 这是由于页面加载所致 如果我在下面添加此行 它似乎可以工作 driver Manage Timeout
  • 无法加载库 plpython3.dll

    我在 Postgresql 版本 10 中创建扩展时遇到错误 无法加载库 C Program Files PostgreSQL 10 lib plpython3 dll 找不到指定的模块 CREATE EXTENSION plpython3
  • 我如何/我可以通过 JavaScript 访问 sessionid cookie?

    我已经安装了 jquery 的 cookie 扩展 并且正在尝试访问会话 id cookie 我的会话当前有两个 cookie 请参阅下面的屏幕截图 然而 cookie 只列出了一个 gt cookie Object csrftoken f
  • Rcpp:处理 NumericMatrix 时,* 的语法糖会产生意想不到的结果

    最近被问到的一个问题让我相信语法糖 by Rcpp不按预期工作 在链接的问题中 用户试图将矩阵乘以标量 R code 这就是我们想要实现的目标Rcpp 但现在简单地说R gt m lt matrix 0 3 2 2 gt m 3 1 2 1
  • 旋转轴刻度标签

    我不知道如何在 X 轴上旋转文本 它是一个时间戳 因此随着样本数量的增加 它们会越来越近 直到重叠 我想将文本旋转 90 度 这样当样本靠得更近时 它们就不会重叠 下面是我所拥有的 它工作正常 但我不知道如何旋转 X 轴文本 import
  • 计算每年两个日期之间的天数

    我有一个数据框 每行都有开始日期和结束日期 我想计算两个日期之间的天数并按年份分割 所以从这里开始 id lt c 1 2 3 start lt as Date c 01 01 2015 01 01 2016 07 01 2015 form