微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在给定开始日期和结束日期的情况下,如何创建日期范围

如何解决在给定开始日期和结束日期的情况下,如何创建日期范围

我正在使用sqldf库来处理R中的数据框。目前,我有这样的数据框:

ID       Start_Date       End_Date
1          08-29           09-01

我想使用sqldf创建一个新的数据框,以在Start_Date和End_Date之间创建一个日期范围,例如,对于ID1,我希望最终的数据框如下所示:

ID        Date_Range      
1           08-29   
1           08-30   
1           08-31
1           09-01

我想我可以创建一个新的数据框。但是我想知道是否可以在sqldf中实现?

解决方法

这是使用tidyverse函数扩展日期范围的一种方法。

library(dplyr)

df %>%
  mutate(across(ends_with('Date'),as.Date,'%m-%d'),#You don't need the above if columns are already of type date/POSIXct
         Date_Range = purrr::map2(Start_Date,End_Date,seq,by = '1 day')) %>%
  tidyr::unnest(Date_Range) %>%
  mutate(Date_Range = format(Date_Range,'%m-%d')) %>%
  select(-Start_Date,-End_Date)

#     ID Date_Range
#  <int> <chr>     
#1     1 08-29     
#2     1 08-30     
#3     1 08-31     
#4     1 09-01     

数据

df <- structure(list(ID = 1L,Start_Date = "08-29",End_Date = "09-01"),class = "data.frame",row.names = c(NA,-1L))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?