r - 为数据框中的每个日期插入日期序列

标签 r dataframe dplyr data.table tidyverse

我有一个包含两列TickerDate的数据框。对于每个“日期”观察,我想创建一个日期序列,该日期序列可以从原始日期追溯到原始日期3天(例如seq(OriginalDate, OriginalDate-3, by=1)

例如:

df = data.frame(Ticker = c("AAPL", "MSFT"), Date = c("2019-01-05", "2019-02-10"))

print(df)

Ticker Date
AAPL   2019-01-05
MSFT   2019-02-10


我希望新的数据框看起来像这样:

print(df)

Ticker Date        Date_Sequence
AAPL   2019-01-05  2019-01-05 #original Date
AAPL   2019-01-05  2019-01-04 #original Date -1
AAPL   2019-01-05  2019-01-03 #original Date -2
MSFT   2019-02-10  2019-02-10 
MSFT   2019-02-10  2019-02-09
MSFT   2019-02-10  2019-02-08

最佳答案

使用data.table

library(data.table)

setDT(df)[ , .(Date_Sequence = as.Date(Date) - 0:2), .(Ticker, Date)]

#    Ticker       Date Date_Sequence
# 1:   AAPL 2019-01-05    2019-01-05
# 2:   AAPL 2019-01-05    2019-01-04
# 3:   AAPL 2019-01-05    2019-01-03
# 4:   MSFT 2019-02-10    2019-02-10
# 5:   MSFT 2019-02-10    2019-02-09
# 6:   MSFT 2019-02-10    2019-02-08

关于r - 为数据框中的每个日期插入日期序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58242406/

相关文章:

r - Dplyr:过滤系列中日期的最后一个条目

按行值重命名分组的 tibble 中的列 (dplyr)

r - 如何对组中最早日期的重复项进行子集化?

r - 正确地将数字转换为 R 中的颜色(矩阵或其他)

R 返回行名称的部分匹配

r - 列表中每个帧中的第一个最高值并添加到新列中

python - 如何对列数未定义的数据框进行数学运算?

r - 如何更改 Rmarkdown、LaTeX 和 .pdf 中表格的字体大小?

r - 首先计算行号,然后按条件插入新行

r - 在 R 中使用函数的输入作为变量名