将 tbl_df 转换为 ts 列表(时间序列)

Converting a tbl_df to a list of ts (Time-series)

有没有办法将这个 tbl_df (df_ex) 转换为 ts 列表(比如这个:list_ts_ex)?

df_ex的数据:

library(OECD)

dataset <- "MEI"
filter_list <- list("", "LORSGPNO", "STSA", "M")
df_ex <- get_dataset(dataset = dataset, filter = filter_list)

我想实现类似的东西 (list_ts_ex):

library(BGVAR)

data(monthlyData)
list_ts_ex <- monthlyData

我可以提取每个国家并创建自己的 ts,像这样:

BRLGDP <- subset(df, LOCATION == "BRA") %>%
  select(obsTime, obsValue)
colnames(BRLGDP) <- c("Date", "GDP")
BRLGDP$Date <- as.Date(as.yearmon(BRLGDP$Date, format = "%Y-%m"), frac = 1)
BRLGDP_ts <- ts(BRLGDP[-1], start = as.yearmon(BRLGDP$Date[1]), frequency = 12)

稍后我可以将它们放在一起以创建时间序列对象列表。不过,我认为有更有效的方法可以做到这一点。我就是找不到解决办法。

自己找到答案:

library(dplyr)
library(zoo)
df_ex <- df_ex %>% 
  split(.$LOCATION) %>% 
  lapply(function(.x) ts(zoo(.x$obsValue, .x$obsTime), start = c(2020, 1), frequency = 12))

这可能对其他人有帮助。