2017-11-29 13 views
0

住所をジオコードし、私は以下のような表を得ました。 postal_codeだけを抽出するにはどうしたらいいですか?したがって、あなたがのリストを取得するためにlapplyを使用することができ、ジオコーディングからの抽象的な唯一の郵便番号

a$results$address_components[[1]] %>% filter(types == "postal_code") 

しかし、私はあなたがあなたのリストのすべてを抽出したいと思います:

subset(a$results$address_components[[1]], types == "postal_code") 

tidyverseの使用:

library(googleway) 
a <- google_geocode(address = '1208 3RD AVE S,NASHVILLE,TN', key = "ABCDEFGHIJKLMN") 

a$results$address_components 
[[1]] 
    long_name  short_name         types 
1    1208   1208       street_number 
2 3rd Avenue South  3rd Ave S         route 
3 South Nashville South Nashville    neighborhood, political 
4  Nashville  Nashville     locality, political 
5 Davidson County Davidson County administrative_area_level_2, political 
6  Tennessee    TN administrative_area_level_1, political 
7 United States    US      country, political 
8   37210   37210       postal_code 
9    4104   4104      postal_code_suffix 

答えて

1

base機能を使います郵便番号:

lapply(a$results, function(x){ 
    subset(x[[1]], types == "postal_code")[["short_name"]] 
}) 

か、再度tidyverseデータフレームを取得する:

map(a$results, filter, .data = .[[1]], types == "postal_code") %>% 
    reduce(bind_rows) %>% 
    select(short_name) # optional... 
+0

の偉大なヒントをありがとう!実際には、コードを動作させるために[[1]]を追加しなければなりませんでした。 'サブセット($ results $ address_components [[1]]、タイプ==" postal_code ")' – joerna

+0

うれしかった。私はリストの他のレベルを見落とした、申し訳ありません。再現可能な例で起こったことはないかもしれません;-)それが今あなたのために働くならば、答えを受け入れることを考えてください、ありがとう。 – Tino