在R studio上使用API的普查数据

在R studio上使用API的普查数据,r,web-scraping,rvest,census,R,Web Scraping,Rvest,Census,所以,我对使用R是新手,如果这些问题看起来有点基本,那么很抱歉 但我的工作要求我使用API查看人口普查数据,确定每个区域中的一些变量,然后创建一个他们可以查看的csv文件。我相信代码完全是为我编写的,但我需要将变量更改为: S2602_C01_023E - black / his S2602_C01_081E - unemployment rate S2602_C01_070E - not US citizen (divide by total population) S0101_C

所以,我对使用R是新手,如果这些问题看起来有点基本,那么很抱歉

但我的工作要求我使用API查看人口普查数据,确定每个区域中的一些变量,然后创建一个他们可以查看的csv文件。我相信代码完全是为我编写的,但我需要将变量更改为:

S2602_C01_023E - black / his 

S2602_C01_081E - unemployment rate 

S2602_C01_070E - not US citizen (divide by total population) 

S0101_C01_030E - # over 65 (divide by total pop)

S1603_C01_009E - # below poverty (divide by total pop)

S1251_C01_010E - # child under 18 (divide by # households)

S2503_C01_013E - median income 

S0101_C01_001E - total population 

S2602_C01_078E - in labor force 
而且,我需要分割一些变量,就像我写的那样,并将所有这些导出到一个CSV文件中。我真的不知道该怎么处理代码,就像我迷路了一样,因为我从来没有使用过R。我尝试将变量更改为我需要的变量,但出现了一个错误。任何帮助都将不胜感激

library(tidycensus)
library(tidyverse)
library(stringr)
library(haven)
library(profvis)

#list of variables possible
v18 <- load_variables(year = 2018,
                  dataset = "acs5",
                  cache = TRUE)
#function to get variables for all states. Year, variables can be 
easily edited.
get_census_data <- function(st) {
  Sys.sleep(5)
  df <- get_acs(year = 2018, 
            variables = c(totpop = "B01003_001",
                          male = "B01001_002",
                          female = "B01001_026",
                          white_alone = "B02001_002",
                          black_alone = "B02001_003",
                          americanindian_alone = "B02001_004",
                          asian_alone = "B02001_005",
                          nativehaw_alone = "B02001_006",
                          other_alone = "B02001_007",
                          twoormore = "B02001_008",
                          nh = "B03003_002",
                          his = "B03003_003",
                          noncit = "B05001_006",
                          povstatus = "B17001_002",
                          num_households = "B19058_001",
                          SNAP_households = "B19058_002",
                          medhhi = "B19013_001", 
                          hsdiploma_25plus = "B15003_017",
                          bachelors_25plus = "B15003_022",
                          greater25 = "B15003_001",
                          inlaborforce = "B23025_002",
                          notinlaborforce = "B23025_007",
                          greater16 = "B23025_001",
                          civnoninstitutional = "B27010_001",
                          withmedicare_male_0to19  = "C27006_004",
                          withmedicare_male_19to64 = "C27006_007",
                          withmedicare_male_65plus = "C27006_010",
                          withmedicare_female_0to19  = "C27006_014",
                          withmedicare_female_19to64 = "C27006_017",
                          withmedicare_female_65plus = "C27006_020",
                          withmedicaid_male_0to19  = "C27007_004",
                          withmedicaid_male_19to64 = "C27007_007",
                          withmedicaid_male_65plus = "C27007_010",
                          withmedicaid_female_0to19  = "C27007_014",
                          withmedicaid_female_19to64 = "C27007_017",
                          withmedicaid_female_65plus ="C27007_020"), 
            geography = "tract",
            state = st )
  return(df)
} 

#loops over all states
df_list <- setNames(lapply(states, get_census_data), states)

##if you want to keep margin of error, remove everything after %>% 
in next two lines
final_df <- bind_rows(df_list) %>%
  select(-moe)

colnames(final_df)[3] <- "varname"

#cleaning up final data, making it wide instead of long
final_df_wide <- final_df %>%
             gather(variable, value, -(GEOID:varname)) %>%
              unite(temp, varname, variable) %>%
              spread(temp, value)

#exporting to csv file, adjust your path
库(tidycensus)
图书馆(tidyverse)
图书馆(stringr)
图书馆(避风港)
图书馆(profvis)
#可能的变量列表

v18既然你不能在不透露API密钥的情况下给出一个可复制的示例,那么我将尽我最大的努力找出什么可以在这里工作:

让我们首先编辑从API提取数据的函数:

get_census_data <- function(st) {
  Sys.sleep(5)
  df <- get_acs(year = 2018, 
            variables = c(blackHis= "S2602_C01_023E",
                          unEmployRate = "S2602_C01_081E",
                          notUSCit = "S2602_C01_070E")
            geography = "tract",
            state = st )
  return(df)
} 

get_census_data你好,欢迎来到SO。如果您提供了一个好的、可复制的样本数据示例,那么帮助您就容易多了。另见:@Julian_Hn我试着清理一下,但谢谢你的建议!您刚刚发布了一个明文形式的普查API密钥。我已编辑您的问题以删除它。永远不要公开发布密钥@朱利安:谢谢你!!我本想把它拿走的!!非常感谢你!!我尝试了这个并运行了它,但是出于某种原因,我得到了旧变量的数据?就像我没有得到这个新的布莱克斯,失业率等数据,只有旧的总人口,女性人口,等等