我有一個 data.table,它代表了一家公司從 2019 年到 2021 年支付的股息。
library(data.table)
div_dt <- structure(list(pay_date = structure(c(18885L, 18793L, 18701L,
18611L, 18520L, 18428L, 18337L, 18246L, 18155L, 18064L, 17910L
), class = c("IDate", "Date")), cash_amount = c(0.09, 0.09, 0.09,
0.09, 0.08, 0.07, 0.07, 0.05, 0.04, 0.04, 0.07)), row.names = c(NA,
-11L), class = c("data.table", "data.frame"))
下表顯示了該股票在 2019 年至 2021 年之間的所有日歷日。
calendar_dt = data.table(current_date = seq(min(div_dt$pay_date), max(div_dt$pay_date), by="days"))
我想顯示該股票在任何給定日期支付的過去 4 個季度的股息總和。為了解決這個我添加了一個新的列div_start_date到calendar_dt,這表明其分紅已被添加到給定日期的開始日期形式current_date。
calendar_dt[, div_start_date := date - 365]
有人可以告訴我如何合并這些表格,以便在 中的每個日歷日calendar_dt,過去 4 個季度的股息總和顯示在新列中嗎?
單行和記憶體高效的解決方案將受到贊賞。
uj5u.com熱心網友回復:
這會起作用(不是最有效的加入,但會完成作業)
# set keys
setkey(calendar_dt, current_date)
setkey(div_dt, pay_date)
# join
calendar_dt[calendar_dt,
cast_last_365 := div_dt[pay_date
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351307.html
