Применить функцию API к 2 столбцам Dataframe, вывести третий столбец - PullRequest
0 голосов
/ 15 февраля 2020

Вот первые четыре столбца кадра данных длиной 20 КБ.

# A tibble: 4 x 4
  Address                            Address_Total    lon   lat
  <chr>                                      <dbl>  <dbl> <dbl>
1 !500 s. dobson rd., mesa, AZ, 852…          14.1 -112.   33.4
2 # l10, jackson, MS, 39202, United…          16.1   NA    NA  
3 0 fletcher allen health care, bur…         300    -73.2  44.5
4 00 w main st # 110, babylon, NY, …         287.    NA    NA  


Я хочу преобразовать геокоды в кадре данных (значения lon и lat) в коды округов (FIPS). Я нашел отличный скрипт, который делает это, используя F CC API. Все, что вам нужно, это ввести два значения lat / long:


geo2fips <- function(latitude, longitude) {
  url <- "https://geo.fcc.gov/api/census/block/find?format=json&latitude=%f&longitude=%f"
  url <- sprintf(url, latitude, longitude)
  json <- RCurl::getURL(url)
  json <- RJSONIO::fromJSON(json)
  as.character(json$County['FIPS'])
}

Например, если я вставлю комбо lat / long, то получится следующее, что идеально:


> # Orange County
> geo2fips(28.35975, -81.421988)
[1] "12095"

Я хочу использовать члена семейства apply для запуска geo2fips по всему набору данных сверху вниз. Я хотел бы, чтобы выходные данные представляли собой пятую колонку моего фрейма данных под названием «FIPS» или что-то в этом роде, которая просто содержит коды FIPS.

Кто-нибудь может помочь? Занимался этим часами, и я не могу заставить его работать. Я уверен, что есть только некоторый синтаксис с использованием семейства apply, и я почти уверен, что это моя ошибка, потому что я не корректно корректирую столбцы dataframe.

...