r 지오 코드에서 국가 이름을 얻는 방법

Philipp Chapkovski

ggmap주소 목록에서 국가 이름을 얻기 위해 라이브러리를 사용 합니다.

그러나 의도 한대로 작동하지 않습니다 (적어도 여기에 설명 된대로 ).

r<-ggmap::geocode(c('harvard university', 'the vatican'), output = 'more')
glimpse(r)

결과:

Rows: 2
Columns: 9
$ lon     <dbl> -71.117, 12.453
$ lat     <dbl> 42.377, 41.903
$ type    <chr> "establishment", "country"
$ loctype <chr> "geometric_center", "approximate"
$ address <chr> "cambridge, ma, usa", "00120, vatican city"
$ north   <dbl> 42.378, 41.907
$ south   <dbl> 42.376, 41.900
$ east    <dbl> -71.115, 12.458
$ west    <dbl> -71.118, 12.446

이 경우 국가 이름을 얻는 방법은 무엇입니까?

최신 정보:

output='all'매개 변수를 제공하면 address_components국가 이름이있는 긴 중첩 목록이 반환 됩니다. 검색하는 가장 효율적인 방법은 무엇입니까?

암호:

r<-ggmap::geocode(c('harvard university', 'the vatican'), output = 'all')
glimpse(r)

결과:

> str(r )
tibble [1 × 2] (S3: tbl_df/tbl/data.frame)
 $ results:List of 1
  ..$ :List of 5
  .. ..$ address_components:List of 3
  .. .. ..$ :List of 3
  .. .. .. ..$ long_name : chr "New York"
  .. .. .. ..$ short_name: chr "New York"
  .. .. .. ..$ types     :List of 2
  .. .. .. .. ..$ : chr "locality"
  .. .. .. .. ..$ : chr "political"
  .. .. ..$ :List of 3
  .. .. .. ..$ long_name : chr "New York"
  .. .. .. ..$ short_name: chr "NY"
  .. .. .. ..$ types     :List of 2
  .. .. .. .. ..$ : chr "administrative_area_level_1"
  .. .. .. .. ..$ : chr "political"
  .. .. ..$ :List of 3
  .. .. .. ..$ long_name : chr "United States"
  .. .. .. ..$ short_name: chr "US"
  .. .. .. ..$ types     :List of 2
  .. .. .. .. ..$ : chr "country"
  .. .. .. .. ..$ : chr "political"
  .. ..$ formatted_address : chr "New York, NY, USA"
  .. ..$ geometry          :List of 4
  .. .. ..$ bounds       :List of 2
  .. .. .. ..$ northeast:List of 2
  .. .. .. .. ..$ lat: num 40.9
  .. .. .. .. ..$ lng: num -73.7
  .. .. .. ..$ southwest:List of 2
  .. .. .. .. ..$ lat: num 40.5
  .. .. .. .. ..$ lng: num -74.3
  .. .. ..$ location     :List of 2
  .. .. .. ..$ lat: num 40.7
  .. .. .. ..$ lng: num -74
  .. .. ..$ location_type: chr "APPROXIMATE"
  .. .. ..$ viewport     :List of 2
  .. .. .. ..$ northeast:List of 2
  .. .. .. .. ..$ lat: num 40.9
  .. .. .. .. ..$ lng: num -73.7
  .. .. .. ..$ southwest:List of 2
  .. .. .. .. ..$ lat: num 40.5
  .. .. .. .. ..$ lng: num -74.3
  .. ..$ place_id          : chr "ChIJOwg_06VPwokRYv534QaPC8g"
  .. ..$ types             :List of 2
  .. .. ..$ : chr "locality"
  .. .. ..$ : chr "political"
 $ status : chr "OK"

찰리 갤러거

나는 output = 'more'논쟁에서 추출하기가 훨씬 쉽다고 생각합니다 . 마지막 항목은 (아마도) 항상 국가입니다.

r<-ggmap::geocode(c('harvard university', 'the vatican'), output = 'more') %>% 
  mutate(
    country = stringr::str_extract(address, "(?<=, )[^,]*$") # everything after last comma
  )


# # A tibble: 2 x 10
#    lon   lat type          loctype          address             north south  east  west country     
#   <dbl> <dbl> <chr>         <chr>            <chr>               <dbl> <dbl> <dbl> <dbl> <chr>       
# 1 -71.1  42.4 establishment geometric_center cambridge, ma, usa   42.4  42.4 -71.1 -71.1 usa         
# 2  12.5  41.9 country       approximate      00120, vatican city  41.9  41.9  12.5  12.4 vatican city

또는를 사용하여 깊게 중첩 된 목록에서 '국가'를 추출 purrr::pluck할 수 있습니다.이 변경 사항처럼 보이므로 'address_components'내에서 적절한 색인을 찾기 위해 몇 가지 작업을 수행해야 할 수도 있습니다.

library(ggmap)
library(purrr)

r<-ggmap::geocode(c('harvard university', 'the vatican'), output = 'all')

# base r
r[[1]][[1]][[1]]$address_components[[3]]$long_name  # USA
r[[2]][[1]][[1]]$address_components[[1]]$long_name  # Vatican City

# purrr
purrr::pluck(r, 1, 1, 1, "address_components", 3, "long_name")
purrr::pluck(r, 2, 1, 1, "address_components", 1, "long_name")

# Result: 
# usa
# vatican city

편집 : 국가 이름을 추출하는 더 강력한 방법이 있습니다.

sapply(r, function(x) {
  # Simplify
  x_reduc <- x$results[[1]]$address_component

  # Loop for 'country' component
  for (i in seq_len(length(x_reduc[[1]]))) {
    component_type <- x_reduc[[i]]$types[[1]]
    if (component_type == 'country') return(x_reduc[[i]]$long_name)
  }
})

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스피너에서 국가 이름 및 국가 전화 (ISD) 코드를 얻는 방법

분류에서Dev

파이썬의 국가 코드에서 국가 이름을 얻습니까?

분류에서Dev

Flutter에서 모바일 국가 코드를 얻는 방법

분류에서Dev

국가 코드를 국가 이름으로 변환하는 방법

분류에서Dev

API로 PHP에서 인도 (+91)와 같은 국가 지역 코드를 얻는 방법

분류에서Dev

Python에서 가져 오는 파일의 이름을 얻는 방법

분류에서Dev

AIR의 경도와 위도에서 국가 이름을 얻는 방법은 무엇입니까?

분류에서Dev

PHP의 사용자 IP 주소에서 사용자 국가 이름을 얻는 방법

분류에서Dev

Swift iOS에서 Pincode로 도시, 주 및 국가 이름을 얻는 방법은 무엇입니까?

분류에서Dev

Play Framework : Json에서 필드 이름을 가져 오는 방법

분류에서Dev

1.0.0 패키지에서 미국 주 이름 목록을 얻는 방법은 무엇입니까?

분류에서Dev

이름이있는 R 벡터의 값에서 이름을 얻는 방법

분류에서Dev

R에서 코드를 얻는 방법?

분류에서Dev

R 맵 패키지에서 단일 국가를 색칠하는 방법 (worldhires)

분류에서Dev

R 맵 패키지에서 단일 국가를 색칠하는 방법 (worldhires)

분류에서Dev

CultureInfo에서 국가 코드를 얻는 방법은 무엇입니까?

분류에서Dev

jquery를 사용하여 JSON 파일에서 지역별 국가 목록을 가져 오는 방법

분류에서Dev

C #의 특정 국가에서 국가 코드를 얻는 방법은 무엇입니까?

분류에서Dev

Swift : 자산에서 이미지 이름을 얻는 방법

분류에서Dev

r의 각 행에서 유사한 국가 이름을 삭제하십시오.

분류에서Dev

rworldmap과 마찬가지로 R에서지도를 생성하지만 지방이있는 특정 국가 용

분류에서Dev

Ajax에서 HTML 페이지의 국가 이름을 PHP 페이지로 전달하는 방법은 무엇입니까?

분류에서Dev

JavaScript의 클라이언트 측 코드에서 다른 국가의 현재 날짜 시간을 얻는 방법은 무엇입니까?

분류에서Dev

JAVA inputStream을 사용하여 HTML 코드에서 중국어 문자를 가져 오는 방법은 무엇입니까?

분류에서Dev

이 코드를 CSS에서 JavaScript로 가져 오는 방법

분류에서Dev

angularjs 지시문에서 API 이름을 얻는 방법

분류에서Dev

수정하지 않고 R 데이터 프레임에서 이름을 행 이름으로 만드는 방법

분류에서Dev

IPv6에서 국가 코드를 계산하는 방법

분류에서Dev

접근자를 사용하여 국가 코드에서 국가 이름을 반환하는 Laravel

Related 관련 기사

  1. 1

    스피너에서 국가 이름 및 국가 전화 (ISD) 코드를 얻는 방법

  2. 2

    파이썬의 국가 코드에서 국가 이름을 얻습니까?

  3. 3

    Flutter에서 모바일 국가 코드를 얻는 방법

  4. 4

    국가 코드를 국가 이름으로 변환하는 방법

  5. 5

    API로 PHP에서 인도 (+91)와 같은 국가 지역 코드를 얻는 방법

  6. 6

    Python에서 가져 오는 파일의 이름을 얻는 방법

  7. 7

    AIR의 경도와 위도에서 국가 이름을 얻는 방법은 무엇입니까?

  8. 8

    PHP의 사용자 IP 주소에서 사용자 국가 이름을 얻는 방법

  9. 9

    Swift iOS에서 Pincode로 도시, 주 및 국가 이름을 얻는 방법은 무엇입니까?

  10. 10

    Play Framework : Json에서 필드 이름을 가져 오는 방법

  11. 11

    1.0.0 패키지에서 미국 주 이름 목록을 얻는 방법은 무엇입니까?

  12. 12

    이름이있는 R 벡터의 값에서 이름을 얻는 방법

  13. 13

    R에서 코드를 얻는 방법?

  14. 14

    R 맵 패키지에서 단일 국가를 색칠하는 방법 (worldhires)

  15. 15

    R 맵 패키지에서 단일 국가를 색칠하는 방법 (worldhires)

  16. 16

    CultureInfo에서 국가 코드를 얻는 방법은 무엇입니까?

  17. 17

    jquery를 사용하여 JSON 파일에서 지역별 국가 목록을 가져 오는 방법

  18. 18

    C #의 특정 국가에서 국가 코드를 얻는 방법은 무엇입니까?

  19. 19

    Swift : 자산에서 이미지 이름을 얻는 방법

  20. 20

    r의 각 행에서 유사한 국가 이름을 삭제하십시오.

  21. 21

    rworldmap과 마찬가지로 R에서지도를 생성하지만 지방이있는 특정 국가 용

  22. 22

    Ajax에서 HTML 페이지의 국가 이름을 PHP 페이지로 전달하는 방법은 무엇입니까?

  23. 23

    JavaScript의 클라이언트 측 코드에서 다른 국가의 현재 날짜 시간을 얻는 방법은 무엇입니까?

  24. 24

    JAVA inputStream을 사용하여 HTML 코드에서 중국어 문자를 가져 오는 방법은 무엇입니까?

  25. 25

    이 코드를 CSS에서 JavaScript로 가져 오는 방법

  26. 26

    angularjs 지시문에서 API 이름을 얻는 방법

  27. 27

    수정하지 않고 R 데이터 프레임에서 이름을 행 이름으로 만드는 방법

  28. 28

    IPv6에서 국가 코드를 계산하는 방법

  29. 29

    접근자를 사용하여 국가 코드에서 국가 이름을 반환하는 Laravel

뜨겁다태그

보관