[英]How do I fill in dates without data on xts
假設我有 6 月 30 日、7 月 31 日、8 月 29 日和 9 月 30 日的數據 xts object(數據)。
我有一個日期 object(日期)與 6 月 30 日、7 月 31 日、8 月 31 日和 9 月 30 日。 當我嘗試執行 new_data <- data[dates] 時,它只是跳過了 8 月的數據。
我想將這四個月的數據用作 EOM 數據。 我該怎么做才能不跳過 8 月的日期,並使用 8 月 31 日的 8 月 29 日數據?
在這里,我假設“EOM”(月末)數據意味着該月的最后一個交易日包含在您的時間序列中,不包括周末(根據您的描述)。
您可以按月拆分xts
object 並取最后一個值,假設您使用的是每日數據(1 個柱形圖為 1 天)
x1 <- getSymbols("AAPL", auto.assign = FALSE)
yy2 <- do.call(rbind, lapply(split(x1, by = "months"), tail, n = 1))
tail(yy2, 10)
#AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
#2021-03-31 121.65 123.52 121.15 122.15 118323800 121.5830
#2021-04-30 131.78 133.56 131.07 131.46 109839500 130.8498
#2021-05-28 125.57 125.80 124.55 124.61 71311100 124.2423
#2021-06-30 136.17 137.41 135.87 136.96 63261400 136.5558
#2021-07-30 144.38 146.33 144.11 145.86 70382000 145.4295
#2021-08-31 152.66 152.80 151.29 151.83 86453100 151.6087
#2021-09-30 143.66 144.38 141.28 141.50 88934200 141.2938
#2021-10-29 147.22 149.94 146.41 149.80 124850400 149.5817
#2021-11-30 159.99 165.52 159.92 165.30 174048100 165.3000
#2021-12-31 178.09 179.23 177.26 177.57 64025500 177.5700
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.