使用tidyquant库中的tq_get函数创建for循环,以按R中的州获取失业申报?[包括图像和代码]
目标:我想在一张表格中按州列出美国每个州的初始失业申请 下面是我下面的例子: 下面是该链接中的代码片段:使用tidyquant库中的tq_get函数创建for循环,以按R中的州获取失业申报?[包括图像和代码],r,loops,for-loop,quantmod,R,Loops,For Loop,Quantmod,目标:我想在一张表格中按州列出美国每个州的初始失业申请 下面是我下面的例子: 下面是该链接中的代码片段: ga_claims <- "GAICLAIMS" %>% tq_get(get = "economic.data", from = "1999-01-01") %>% rename(claims = price) ga_索赔% tq_get(get=“economic.data”, from=“1999-01-01”)%>% 重命名
ga_claims <-
"GAICLAIMS" %>%
tq_get(get = "economic.data",
from = "1999-01-01") %>%
rename(claims = price)
ga_索赔%
tq_get(get=“economic.data”,
from=“1999-01-01”)%>%
重命名(索赔=价格)
第一个过滤器适用于格鲁吉亚。但是,我希望它适用于所有州。我能够创建一个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)
}
如果您想将其合并为一个数据帧,我们可以执行以下操作:
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)
df感谢您的快速响应,每次我运行lappy函数时,我都会被转移到一个新窗口,并在控制台中收到消息“从:tq_get(,get=“economic.data”,from=“1999-01-01”)Browse[1]>”您是否在函数中的某个位置添加了browser()
?看起来函数中的某个地方连接了调试器。
df <- data.frame(Claim_Code = c('GAICLAIMS', 'ALICLAIMS', 'AZICLAIMS'),
stringsAsFactors = FALSE)