Запуск в цикле при извлечении данных с Amazon S3 - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь получить данные из Eviction Lab , которая использует Amazon S3.Чтобы получить данные с серверов Amazon, я использую функцию aws.s3 облачного пакета .Я хочу получить данные переписного участка для всех 50 штатов.Каждый из них представляет собой большой файл .csv.Если я запускаю этот код, я могу успешно получить данные каждого отдельного состояния:

NY.tract<-get_object("NY/tracts.csv", bucket = "eviction-lab-data-downloads")

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

У меня две основные проблемы с циклом:

  • (1) Я должен выяснить, как указать "NY / tracts.CSV "внутри функции get_object, так что она меняется с каждым нажатием.Я не уверен, что мой цикл делает это

  • (2) Мне нужно назвать каждое извлечение данных оценкой штата.Я мог бы использовать другой список или data.frame, чтобы указать аббревиатуру Stata, но я понятия не имею, с чего начать.

Моя попытка зацикливания все еще не реализована.«File.paths», на который я ссылаюсь в последовательности функции цикла, - это data.frame, который я вставил в R, это строковая переменная со всеми 50 именами состояний, которые я хочу вывести в виде наблюдений из 50 строк.Например, первая строка - «AL / tracts.csv», вторая - «AK / tracts.csv» и т. Д. Вот цикл, который я написал:

for(i in 1:nrow(file.paths)){
   my.data<-get_object("i", bucket = "eviction-lab-data-downloads")
  }

View(my.data)

Когда я запускаюэтот цикл возвращает 272 наблюдения для 1 переменной.Я хочу получить 50 различных наборов данных .csv, названных в соответствии с аббревиатурой штата, которые я могу связать в 1 общенациональный набор данных.

Может быть, это невозможно сделать с помощью функции get_object?Я, конечно, могу написать 50 строк кода, чтобы получить отдельные объекты, которые я хочу, но я бы предпочел цикл, чтобы я мог редактировать его в будущем.

Любая помощь здесь будет потрясающей.

Спасибо.Бест, Кейси

...