在一系列CSV中阅读更简约的方式?

时间:2016-02-18 23:25:42

标签: r

让我们说我正在编写一个R脚本,从Quandl(或一系列.csv,或任何其他类型的顺序重复命令)中提取数据

St_AL <- Quandl("datalocation/_ST_AL")
St_AK <- Quandl("datalocation/_ST_AK")
St_AZ <- Quandl("datalocation/_ST_AZ")
St_AR <- Quandl("datalocation/_ST_AR")
St_CA <- Quandl("FRBC/EMPL_ST_CA")
##SEQUENCE CONTINUES FOR ALL 50 U.S. STATES, or any other sequence##

有没有更简洁的方法做到这一点,不需要50行代码?我在想,也许是一个字符串,它有50个状态名称作为值,然后将字符串值替换为循环?但我无法想出实现它的方法。这是关键吗?或其他什么?

1 个答案:

答案 0 :(得分:5)

正如@PierreLafortune所说,您可以使用state.abb作为状态列表,并使用lapply()函数循环遍历每个状态:

lapply(state.abb, FUN=function(x) Quandl(paste0("datalocation/_ST_",x)))

或@RichardScriven建议:

lapply(paste0("datalocation/_ST_",state.abb), Quandl)

您可以使用以下内容将所有结果排列到一个data.frame

do.call(rbind, lapply(paste0("datalocation/_ST_",state.abb), Quandl))