使用开始和结束日期按日期范围扩展行

FooBar

考虑以下形式的数据框

       idnum      start        end
1993.1    17 1993-01-01 1993-12-31
1993.2    17 1993-01-01 1993-12-31
1993.3    17 1993-01-01 1993-12-31

startend为类型的Date

 $ idnum : int  17 17 17 17 27 27
 $ start : Date, format: "1993-01-01" "1993-01-01" "1993-01-01" "1993-01-01" ...
 $ end   : Date, format: "1993-12-31" "1993-12-31" "1993-12-31" "1993-12-31" ...

我想创建一个新的数据框,取而代之的是在start之间end(包括边界)的每个月的每一行的每月观测值

期望的输出

idnum       month
   17  1993-01-01
   17  1993-02-01
   17  1993-03-01
...
   17  1993-11-01
   17  1993-12-01

我不确定month应该采用哪种格式,我有时会希望按分组idnummonth以便对其余数据集进行回归。

到目前为止,对于每一行,seq(from=test[1,'start'], to=test[1, 'end'], by='1 month')它给我正确的顺序-但是,一旦我尝试将其应用于整个数据帧,它将无法正常工作:

> foo <- apply(test, 1, function(x) seq(x['start'], to=x['end'], by='1 month'))
Error in to - from : non-numeric argument to binary operator
阿伦

使用data.table

require(data.table) ## 1.9.2+
setDT(df)[ , list(idnum = idnum, month = seq(start, end, by = "month")), by = 1:nrow(df)]

# you may use dot notation as a shorthand alias of list in j:
setDT(df)[ , .(idnum = idnum, month = seq(start, end, by = "month")), by = 1:nrow(df)]

setDT转换dfdata.table然后,为每一行by = 1:nrow(df)创建idnummonth根据需要创建

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用开始日期和结束日期从SQL表中按日扩展的行输出?

日期范围中的开始和结束日期

按开始日期和结束日期创建日期向量

给定日期范围,按季度设置开始和结束日期

Spark窗口功能:筛选出开始日期和结束日期在另一行开始日期和结束日期范围内的行

从时间戳范围获取开始日期和结束日期

从开始-结束日期和时间(UTC)找出日期范围

按日期范围扩展行,以熊猫为起点和终点

基于行中值的“开始”和“结束”日期

使用NA值按日期范围扩展数据框行

使用开始和结束日期绘制线条

根据开始日期和结束日期重复行

使用开始日期和结束日期列进行重新采样

如何使用熊猫的开始日期和结束日期提取DataFrame

按开始和结束时间用日期过滤ArrayList

使用dplyr将开始和结束日期扩展到不平衡的每月面板

使用 HighCharts 在时间序列 LineChart 中显示开始和结束日期范围

如何在icCube中的范围维度II中使用流程管理开始和结束日期

将日期扩展为当天的开始日期和结束日期时间

Spring Data JPA返回具有指定范围(开始日期和结束日期)的日期列表

Erlang日期范围在开始日期和结束日期之间的每一天

如何从日期范围(开始日期和结束日期)生成每周列表?

如何生成一系列介于开始日期和结束日期之间的日期范围?

在Oracle日期范围内生成开始日期和结束日期

python中日期范围之间的月份开始日期和结束日期

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

如何根据reactjs中的日期范围选择(开始日期-结束日期)过滤表格行?

如何开始和结束日期

MDX-如何按日期汇总考虑维度中的开始日期和结束日期