2017-01-20 12 views
0

Я хотел бы знать, как скачать файлы LEHD со своего FTP-сайта.Как использовать R для загрузки данных LEHD с веб-сайта?

https://lehd.ces.census.gov/data/lodes/LODES7/

Мне нужно, чтобы загрузить данные на несколько лет, и для рабочего места и место жителя мест. Файлы регулярно названы, и техническая документация можно найти здесь:

https://lehd.ces.census.gov/data/lodes/LODES7/LODESTechDoc7.2.pdf S000 ссылки все сегменты рабочей силы ссылки JT00 все типы заданий

Так типичное имя файла: ca_wac_S000_JT00_2008.csv.gz В «каталог»/URL-адрес: https://lehd.ces.census.gov/data/lodes/LODES7/ca/wac/

This bit of git-hub code seems relevant. Harvard tutorial был полезен и предоставил мне способ создать список всех файлов. Но я не могу загрузить фактическую загрузку - R.curl hasn't worked for me, так как я столкнулся с проблемой SSL.

Расширенный код, кажется, не работает, либо:

install.packages("RCurl") 
library(RCurl) 
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))) 
URL <- "https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Fss06hid.csv" 
x <- getURL(URL) 
x 
#the above code works. 

#my implementation...fails 
URL <- "https://lehd.ces.census.gov/data/lodes/LODES7/ca/wac/ca_wac_S000_JT00_2002.csv.gz" 
x <- getURL(URL) 
#results in following error: 
#Error in function (type, msg, asError = TRUE) : 
# error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 

DevTools :: session_info) Информация о сессии (---------------- -------------------------------------------------- --------------------- установка значения версия R версия 3.4.3 (2017-11-30) система x86_64, mingw32 ui RStudio (1.1.383) язык (EN) English_United States.1252 tz Америка/Денвер
Дата 2017-12-17

Пакеты ------------------------------------------ ------------------------------------------------- пакет * версия дата источник acs * 2.1.2
2017-10-10 CRAN (R 3.4.3) assertthat 0.2.0 2017-04-11 CRAN (R 3.4.3) база * 3.4.3 2017-12-06 local bindr 0.1 2016-11-13 CRAN (R 3.4.3) bindrcpp 0.2 2017-06-17 Класс CRAN (R 3.4.3) класс 7.3-14 2015-08-30 CRAN (R 3.4.3) classInt 0,1-24 2017-04-16 CRAN (R 3.4.3) компилятор 3.4.3
2017-12-06 локальный завиток * 3.1 2017-12-12 CRAN (R 3.4.3) наборы данных * 3.4.3 2017-12-06 местный DBI 0.7 2017-06-18 CRAN (R 3.4.3) devtools * 1.13.4 20 17-11-09 дайджест CRAN (R 3.4.3) 0.6.13 2017-12-14 CRAN (R 3.4.3) dplyr * 0.7.4 2017-09-28 CRAN (R 3.4.3) e1071 1.6-8 2017-02-02 CRAN (R 3.4.3) иностранный 0.8-69 2017-06-22 CRAN (R 3.4.3) gdtools * 0.1.6 2017-09-01 CRAN (R 3.4.3) git2r 0.19.0
2017-07-19 CRAN (R 3.4.3) клей 1.2.0 2017-10-29 CRAN (R 3.4.3) графика * 3.4.3 2017-12-06 локальные grDevices * 3.4.3 2017-12 -06 локальная сетка 3.4.3 2017-12-06 местная hms 0.4.0 2017-11-23 CRAN (R 3.4.3) httr 1.3.1 2017-08-20 CRAN (R 3.4.3) решетка 0.20-35 2017-03-25 КРАН (R 3.4.3) lode * 0,1,0 2017-12-17 git (@ 8cca008) magrittr 1.5 2014-11-22 CRAN (R 3.4.3) maptools 0.9-2
2017- 03-25 CRAN (R 3.4.3) memoise 1.1.0 2017-04-21 CRAN (R 3.4.3) методы * 3.4.3 2017-12-06 local pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.3) plyr 1.8.4 2016-06-08 CRAN (R 3.4.3) purrr 0.2 .4 2017-10-18 CRAN (R 3.4.3) R6
2.2.2 2017-06-17 CRAN (R 3.4.3) rappdirs 0.3.1 2016-03-28 CRAN (R 3.4.3) Rcpp 0.12 .14 ​​2017-11-23 CRAN (R 3.4.3) readr 1.1.1 2017-05-16 CRAN (R 3.4.3) rgdal 1.2-16 2017-11-21 CRAN (R 3.4.3) rgeos 0.3-26 2017-10-31 CRAN (R 3.4.3) rlang 0.1.4 2017-11-05 CRAN (R 3.4.3) sf 0.5 -5 2017-10-31 CRAN (R 3.4.3) sp * 1.2-5 2017-06-29 Статистика CRAN (R 3.4.3) * 3.4.3 2017-12-06 local stringi 1.1.6 2017-11 -17 CRAN (R 3.4.2) stringr * 1.2.0 2017-02-18 CRAN (R 3.4.3) tibble 1.3.4 2017-08-22 CRAN (R 3.4.3) tigris * 0,5.3
2017-05-26 Инструменты CRAN (R 3.4.3) 3.4.3 2017-12-06 местный
udunits2 0,13 2016-11-17 единицы CRAN (R 3.4.1) 0.4-6
2017-08-27 CRAN (R 3.4.3) utils * 3.4.3 2017-12-06 местный
uuid 0,1-2 2015-07-28 CRAN (R 3.4.1) withr 2.1.0
2017-11-01 CRAN (R 3 , 4,3) XML * 3.98-1.9 2017-06-19 КРАН (R 3.4.1)

ответ

1

Я нашел решение here. Это не идеально, поскольку он загружает файлы в память, а не сохраняет их на диск. Но это работает для меня.

years.to.download <- c(2002,2004,2014) 
options(scipen = 999) # Supress scientific notation so we can see census geocodes 
library(plyr); library(dplyr) 
library(downloader) # downloads and then runs the source() function on scripts from github 
library(R.utils) # load the R.utils package (counts the number of lines in a file quickly) 


# Program start ---------------------------------------------------------------- 
tf <- tempfile(); td <- tempdir() # Create a temporary file and a temporary directory 
# Load the download.cache and related functions 
# to prevent re-downloading of files once they've been downloaded. 
source_url(
    "https://raw.github.com/ajdamico/asdfree/master/Download%20Cache/download%20cache.R", 
    prompt = FALSE, 
    echo = FALSE 
) 
# Loop through and download each year specified by the user 
for(year in years.to.download) { 
    cat("now loading", year, "...", '\n\r') 
#-----------Data import: residence area characteristics--------------------- 
    # Data import: workplace area characteristics (i.e. job location data) 
    # Download each year of data 
    # Zipped file to the temporary file on your local disk 
    # S000 references all workforce segments 
    # JT00 references all job types 
    download_cached(
    url = paste0("http://lehd.ces.census.gov/data/lodes/LODES7/ca/wac/ca_wac_S000_JT00_", year, ".csv.gz"), 
    destfile = tf, 
    mode = 'wb' 
) 

# Create a variable to store the wac file for each year 
    assign(paste0("wac.", year), read.table(gzfile(tf), header = TRUE, sep = ",", 
              colClasses = "numeric", stringsAsFactors = FALSE)) 
    # Remove the temporary file from the local disk 
    file.remove(tf) 
    # And free up RAM 
    gc() 

#-----------Data import: residence area characteristics--------------------- 
    download_cached(
    url = paste0("http://lehd.ces.census.gov/data/lodes/LODES7/ca/rac/ca_rac_S000_JT00_", year, ".csv.gz"), 
    destfile = tf, 
    mode = 'wb' 
) 
    # Create a variable to store the rac file for each year 
    assign(paste0("rac.", year), read.table(gzfile(tf), header = TRUE, sep = ",", 
              colClasses = "numeric", stringsAsFactors = FALSE)) 
    # Remove the temporary file from the local disk 
    file.remove(tf) 
    # And free up RAM 
    gc() 
} 
+0

ajdamico ссылка уже не является хорошей. – Mox

2

Если вы можете использовать GitHub устанавливаемого пакеты (это будет немного, прежде чем я получаю это на CRAN), то вы можете дать https://github.com/hrbrmstr/lodes идти:

devtools::install_git("https://github.com/hrbrmstr/lodes.git") 

library(lodes) 
library(dplyr) 

de <- read_lodes("de", "od", "aux", "JT00", "2006", "~/Data/lodes") 

glimpse(de) 
## Observations: 68,284 
## Variables: 13 
## $ w_geocode <dbl> 1.000104e+14, 1.000104e+14, 1.000104e+14, 1.000104e+14, 1.000104e+14, 1.000104e+14, 1.000104e+14... 
## $ h_geocode <chr> "240119550001006", "240119550001040", "240299501002080", "240299501003088", "240299503002017", "... 
## $ S000  <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 
## $ SA01  <int> 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, ... 
## $ SA02  <int> 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, ... 
## $ SA03  <int> 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ... 
## $ SE01  <int> 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, ... 
## $ SE02  <int> 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, ... 
## $ SE03  <int> 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, ... 
## $ SI01  <int> 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, ... 
## $ SI02  <int> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 
## $ SI03  <int> 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, ... 
## $ createdate <int> 20160228, 20160228, 20160228, 20160228, 20160228, 20160228, 20160228, 20160228, 20160228, 201602... 

Она имеет функцию для чтения & кэшируйте файл кроссворда и функцию для чтения и кеширования отдельных файлов данных.

Пожалуйста, дайте мне знать, если у вас все еще есть отказ SSL, и если да, добавьте вывод devtools::session_info() или sessionInfo() на ваш вопрос.

+0

библиотека (Devtools) DevTools :: install_git ("https://github.com/hrbrmstr/lodes.git") библиотека (жилы) библиотека (dplyr) getwd() setwd («N:/Dropbox/_BonesFirst/LODES ") de <- read_lodes (« de »,« od »,« aux »,« JT00 »,« 2006 »,« N:/Dropbox/_BonesFirst/LODES ») glimpse (de) #this работает, по состоянию на 12/17/2017 – Mox

 Смежные вопросы

  • Нет связанных вопросов^_^