Цикл по списку состояний и добавление перед экспортом в CSV в R - PullRequest
1 голос
/ 21 октября 2019

Я собираюсь использовать команду getCensus для получения информации из идентификатора серии для всех трактатов в каждом штате США. Census API не позволяет вам делать это автоматически (только позволяет получать все тракты из одного состояния за раз), поэтому я ищу способ перебрать каждое состояние, чтобы собрать все тракты, добавить каждый результат и затем экспортироватьна один большой CSV.

В настоящее время у меня есть код, который экспортирует результат каждого состояния в CSV:

library(censusapi)

list<- listCensusMetadata("acs/acs5/profile", vintage=2017, group="DP04", type="variables")

tract5yrunits1<- getCensus(name = "acs/acs5/profile", 
                          vintage=2017, 
                          vars=c("NAME", "DP04_0011E", "DP04_0012E","DP04_0013E"),
                          region = "tract:*",
                          regionin = "state:01")
View(tract5yrunits1)
write.csv(tract5yrunits1,'tract5yrunits1.csv')

Где 1 - первое состояние (AK). Но я хотел бы пройтись по вектору состояний, добавить и экспортировать добавленный файл.

Буду признателен за любую помощь!

1 Ответ

1 голос
/ 21 октября 2019

Попробуйте это

tract5yrunits<- getCensus(name = "acs/acs5/profile", 
                          vintage=2017, 
                          vars=c("NAME", "DP04_0011E", "DP04_0012E","DP04_0013E"),
                          region = "tract:*",
                          regionin = "state:01")
# states vector
states <- as.character(seq(2,50))
states[1:8] <- paste("0",states[1:8],sep="")
# loop through states
for (state in states) {
    tract5yrunitstemp<- getCensus(name = "acs/acs5/profile", 
                          vintage=2017, 
                          vars=c("NAME", "DP04_0011E", "DP04_0012E","DP04_0013E"),
                          region = "tract:*",
                          regionin = paste("state:",state,sep=""))
    # add rows
    tract5yrunits <- rbind(tract5yrunits,tract5yrunitstemp)
}
write.csv(tract5yrunits1,'tract5yrunits1.csv')
...