Нужна помощь в извлечении JSON данных с RSocrata из API веб-сайта - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужна помощь в составлении кода, который извлекает данные c непосредственно с веб-сайта в формате Socrata. Вот ссылка:

https://data.cityofchicago.org/Administration-Finance/Current-Employee-Names-Salaries-and-Position-Title/xzkq-xp2w

Есть конечная точка API:

https://data.cityofchicago.org/resource/xzkq-xp2w.json

После загрузки данных нулевые значения в «Годовой зарплате» следует заменить на 50000.

1 Ответ

2 голосов
/ 07 апреля 2020

Мы можем использовать пакет RSocrata

library(RSocrata)
url <- "https://data.cityofchicago.org/resource/xzkq-xp2w.json"
data <- RSocrata::read.socrata(url)
head(data)
#                             name                                    job_titles       department full_or_part_time salary_or_hourly annual_salary typical_hours hourly_rate
#1               AARON,  JEFFERY M                                      SERGEANT           POLICE                 F           Salary        111444          <NA>        <NA>
#2                  AARON,  KARINA        POLICE OFFICER (ASSIGNED AS DETECTIVE)           POLICE                 F           Salary         94122          <NA>        <NA>
#3             AARON,  KIMBERLEI R                      CHIEF CONTRACT EXPEDITER             DAIS                 F           Salary        118608          <NA>        <NA>
#4             ABAD JR,  VICENTE M                             CIVIL ENGINEER IV      WATER MGMNT                 F           Salary        117072          <NA>        <NA>
#5              ABARCA,  FRANCES J                                POLICE OFFICER           POLICE                 F           Salary         48078          <NA>        <NA>

. Следующие элементы будут заменены в annual_salary на 50000.

data[is.na(data$annual_salary),"annual_salary"] <- 50000

Однако, если вы Если вы хотите делать то, что предлагает на сайте города Чика go, вы можете рассмотреть умножение typical_hours на hourly_rate для оценки заработной платы

ind <- is.na(data$annual_salary)
data[ind,]$annual_salary <- as.numeric(data[ind,]$typical_hours) * as.numeric(data[ind,]$hourly_rate) * 52
...