簡體   English   中英

在 R 中使用 blsAPI 獲取 2020 年失業人數? [包括代碼和圖像]

[英]Getting 2020 unemployment numbers using blsAPI in R? [code and image included]

我正在嘗試從 R 中的 blsAPI 中提取 2020 年失業人數。我目前正在從這個鏈接復制這個例子。 我將結束年份更改為 2020 年,但我仍然只獲得截至 2016 年的失業數字作為最近一年。

見圖片在此處輸入圖像描述

這是代碼

   #Install needed libraries 
install.packages('rjson')
library(rjson)
install.packages('blsAPI')
library(blsAPI)
library(ggplot2)

## Pull the data via the API
payload <- list(
  'seriesid'=c('LAUCN360610000000004', 'LAUCN360610000000006'),
  'startyear'=2007,
  'endyear'=2020)
response <- blsAPI(payload, 2)
json <- fromJSON(response)

## Process results
apiDF <- function(data){
  df <- data.frame(year=character(),
                   period=character(),
                   periodName=character(),
                   value=character(),
                   stringsAsFactors=FALSE)

  i <- 0
  for(d in data){
    i <- i + 1
    df[i,] <- unlist(d)
  }
  return(df)
}
View(apiDF)

unemployed.df <- apiDF(json$Results$series[[1]]$data)
labor.force.df <- apiDF(json$Results$series[[2]]$data)

## Change value type from character to numeric
unemployed.df[,4] <- as.numeric(unemployed.df[,4])
labor.force.df[,4] <- as.numeric(labor.force.df[,4])

## Rename value prior to merging
names(unemployed.df)[4] <- 'unemployed'
names(labor.force.df)[4] <- 'labor.force'

## Merge data frames
df <- merge(unemployed.df, labor.force.df)

## Create date and unemployement rate
df$unemployment.rate <- df$unemployed / df$labor.force
df$date <- as.POSIXct(strptime(paste0('1',df$periodName,df$year), '%d%B%Y'))


## Beginning and end dates for the Great Recession (used in shaded area)
gr.start <- as.POSIXct(strptime('1December2007', '%d%B%Y'))
gr.end <- as.POSIXct(strptime('1June2009', '%d%B%Y'))

View(df)
##Plot out the data
ggplot(df) + geom_rect(aes(xmin = gr.start, xmax = gr.end, ymin = -Inf, ymax = Inf), alpha = 0.4, fill="#DDDDDD") + geom_line(aes(date, unemployment.rate*100)) + ylab('Percent of labor force')  + xlab('Great Recession shaded in gray') + ggtitle('Unemployment Rate for Manhattan, NY (Jan 2007 to Dec 2010)') + theme_bw()

MichiganData <- blsQCEW('Area', year='2017', quarter='1', area='26000')
View(MichiganData)

package 似乎有兩個版本(版本 1 和版本 2),您使用的是哪一個?

對於版本 1,每個查詢的年數限制為 10 年。

鑒於您的開始日期是 2007 年,而您獲得的最新年份是 2016 年,您可能使用的是版本 1。

請參閱上面提供的鏈接中的 API Basics

正如@Jamie_B所述,BLS API 有兩個版本(1.0 和 2.0); 后者要求您注冊並獲得一個 api 密鑰,然后您可以使用該密鑰更高效地進行查詢。 您的問題可能源於此,但對於質量保證檢查,我建議使用名為blscrapeR的包裝器 api,其功能與原始 BLS 開發項目非常相似。

我在使用 R 的同一項目環境中利用這兩個包時沒有遇到很多問題,因為這兩個包都具有獨特的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM