使用 tidyquant 库中的 tq_get 函数创建循环以获取 R 中各州的失业申请? [包括图像和代码]

Creating for loop using tq_get function from the tidyquant library to get unemployment filings by state in R? [Image & Code Included]

目标: 我想在 table 中获取 U.S 中每个州的初始失业申请。

这是我正在关注的示例:Link

这是 link 中的一小段代码:

ga_claims <- 
  "GAICLAIMS" %>% 
  tq_get(get = "economic.data", 
         from = "1999-01-01") %>% 
  rename(claims = price) 

第一个过滤器适用于格鲁吉亚。但是,我想要所有州。我能够创建一个 csv 文件以将所有州缩写与 'ICLAIMS' 连接起来。我只是想通过您在下面看到的我的函数传递一个 for 循环。附件是我上传的 csv 的屏幕截图,其中包含该格式的所有状态...'CAICLAIMS'、'NYICLAIMS'、'ALICLAIMS' 等等...

我们可以创建一个函数:

library(dplyr)
library(tidyquant)

get_data <- function(x) {
  x %>% 
    tq_get(get = "economic.data",from = "1999-01-01") %>% 
    rename(claims = price) 
}

并通过 lapply 传递每个 Claim_Code

lapply(df$Claim_Code, get_data)

如果你想把它合并成一个数据帧,我们可以这样做:

do.call(rbind, Map(cbind, lapply(df$Claim_Code, get_data), 
               Claim_Code = df$Claim_Code))

#         date claims Claim_Code
#1   1999-01-02   9674  GAICLAIMS
#2   1999-01-09  19455  GAICLAIMS
#3   1999-01-16  20506  GAICLAIMS
#4   1999-01-23  12932  GAICLAIMS
#5   1999-01-30  10871  GAICLAIMS
#6   1999-02-06   7997  GAICLAIMS

或使用 purrr

library(purrr)
map2_df(map(df$Claim_Code, get_data), df$Claim_Code, cbind)

数据

df <- data.frame(Claim_Code = c('GAICLAIMS', 'ALICLAIMS', 'AZICLAIMS'), 
                 stringsAsFactors = FALSE)