簡體   English   中英

R censusapi函數引入了NA

[英]R censusapi function introduces NAs

我正在使用R的censusapi程序包從美國人口普查局的經濟普查中下載數據,特別是2012年的數據。讀入R的某些列中帶有強制性引入的NA,這顯然是因為R假定使用的數據類型不合適。 簡而言之,如何將getCensus API調用與指定的變量類型集成在一起?

具體來說,變量“ NAICS2012_TTL”和某些情況下的“ NAICS2012”讀為NA,不應讀入。 第一個完全是R堅持應該為數字的文本字段。 第二個是一系列應視為文本的數字,其中包括一些連字符的數字,它們讀作NA。 如何告訴R提取此數據而不給它不適當的數據類型? 代碼如下。 您需要一個Census API密鑰來測試:

library("censusapi")
myFile<-getCensus(name="ewks",vintage=2012,key=("YOURKEYHERE"),
              vars = c("EMP","EMP_F","EMP_S","ESTAB","ESTAB_F","GEO_ID","GEO_TTL","GEOTYPE","NAICS2012","NAICS2012_TTL","OPTAX","PAYANN","PAYANN_F","PLACE"),region="place:*", regionin="state:01")

我嘗試使myFile作為data.frame並在過程中指定colClasses失敗。 我還閱讀了我能找到的有關censusapi軟件包的所有支持文檔,但無濟於事。

經過數小時的反復試驗,我得出的結論是,censusapi軟件包更適合於ACS數據,並且對於經濟普查數據來說效果不佳。 需要明確的是,經濟普查數據是API支持的普查局數據集。 但是,censusapi軟件包將某些字段轉換為經濟普查數據的NA。

為了更成功地使用其API將經濟普查讀入R,我轉而使用“ curl”和“ jsonlite”包。 這是起作用的腳本。 編寫該代碼可下載所有位置的NAICS代碼22數據。 您可以使用apply函數遍歷其他NAICS代碼。

library(curl)
library(jsonlite)
curl_download("https://api.census.gov/data/2012/ewks?get=EMP,NAICS2012_TTL,OPTAX,ESTAB,PAYANN,RCPTOT,GEO_TTL&for=place:*&NAICS2012=22      &key=YOURKEYHERE",naics_22)
mymatrix <- fromJSON(naics_22)
matrix2<-data.frame(mymatrix)
write.csv(matrix2,"EC22.csv")

暫無
暫無

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

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