在R studio上使用API的普查数据
所以,我对使用R是新手,如果这些问题看起来有点基本,那么很抱歉 但我的工作要求我使用API查看人口普查数据,确定每个区域中的一些变量,然后创建一个他们可以查看的csv文件。我相信代码完全是为我编写的,但我需要将变量更改为:在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
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密钥。我已编辑您的问题以删除它。永远不要公开发布密钥@朱利安:谢谢你!!我本想把它拿走的!!非常感谢你!!我尝试了这个并运行了它,但是出于某种原因,我得到了旧变量的数据?就像我没有得到这个新的布莱克斯,失业率等数据,只有旧的总人口,女性人口,等等