subset data getSymbols quantmod
子集数据,例如上一年度并存储为新对象。
1
2 3 4 |
mtdl <- na.omit(getSymbols(“MTDL.JK”, auto.assign = F, src =”yahoo”, periodicity =”weekly”))
week.year.mtdl <- mtdl %>% |
这将为 xts 对象提供 2018 分
1
|
mtdl[“2018”]
|
所有这些也都有效:
1
2 3 4 5 6 7 8 9 10 11 12 |
subset(mtdl, time(.) >=”2018-01-01″ & time(.) <=”2018-12-31″)
subset(mtdl, start =”2018-01-01″, end =”2018-12-31″) window(mtdl, start =”2018-01-01″, end =”2018-12-31″) dates <- seq(as.Date(“2008-01-01”), as.Date(“2008-12-31″),”day”) mtdl[dates] # dates is from above mtdl[ format(time(mtdl),”%Y”) == 2018 ] |
如果你想使用 dplyr,这里有一些方法可以解决这个问题。
1 将 xts 转换为 data.frame
1
2 3 4 5 6 7 8 9 10 11 12 |
df_mtdl <- data.frame(date = index(mtdl), coredata(mtdl))
week.year.mtdl <- df_mtdl %>% filter(date >= as.Date(“2018-01-01”) & date <= as.Date(“2018-12-31”)) head(week.year.mtdl) |
2 使用 tidyquant。这将返回一个 tibble 而不是 xts 对象。 Tidyquant 建立在 quantmod 和许多其他软件包之上。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
library(tidyquant)
tq_mtdl <- tq_get(“MTDL.JK”, complete_cases = TRUE, periodicity =”weekly”) week.year.mtdl <- tq_mtdl %>% head(week.year.mtdl) |
来源:https://www.codenong.com/58303381/