Hoʻonui i nā kolamu pūnana - nā papa inoa e hoʻohana ana i ka ʻōlelo R.
I ka hapanui o nā hihia, i ka hana ʻana me kahi pane i loaʻa mai kahi API, a i ʻole me nā ʻikepili ʻē aʻe i loaʻa kahi ʻano kumu lāʻau paʻakikī, ke alo nei ʻoe i nā palapala JSON a me XML.
He nui nā pōmaikaʻi o kēia mau ʻano: mālama lākou i ka ʻikepili me ka paʻakikī a ʻae iā ʻoe e pale i ka hoʻopiʻi pono ʻole o ka ʻike.
ʻO ka hemahema o kēia mau ʻano, ʻo ia ka paʻakikī o kā lākou hana ʻana a me ka nānā ʻana. ʻAʻole hiki ke hoʻohana ʻia nā ʻikepili i kūkulu ʻole ʻia i ka helu ʻana a ʻaʻole hiki ke kūkulu ʻia ka ʻike maka ma luna.
He hoʻomau kūpono kēia ʻatikala o ka hoʻopuka "R package tidyr a me kāna mau hana hou pivot_longer a pivot_wider". E kōkua ia iā ʻoe e lawe mai i nā hale ʻikepili i hoʻonohonoho ʻole ʻia i kahi ʻano maʻamau a kūpono hoʻi no ka nānā ʻana i ka papa kuhikuhi me ka hoʻohana ʻana i ka pūʻolo tidyr, komo i loko o ke kumu o ka waihona tidyverse, a me kāna ʻohana o nā hana unnest_*().
Nā mea
Inā makemake ʻoe i ka ʻikepili ʻikepili, makemake paha ʻoe i kaʻu telegram и Ukulele nā kahawai. Hoʻolaʻa ʻia ka hapa nui o nā mea i ka ʻōlelo R.
Hoʻohāhā(Meka a ka mea unuhi, ʻaʻole i loaʻa iaʻu nā koho unuhi kūpono no kēia huaʻōlelo, no laila e waiho mākou e like me ia.) ʻO ke kaʻina hana o ka lawe ʻana i ka ʻikepili i hoʻonohonoho ʻole ʻia me nā pūnana pūnana i loko o kahi papa ʻelua-dimensional i loaʻa nā lālani a me nā kolamu. IN tidyr Aia kekahi mau hana e kōkua iā ʻoe e hoʻonui i nā kolamu papa inoa pūnana a hoʻemi i ka ʻikepili i kahi ʻano ʻāpana ʻāpana:
unnest_longer() lawe i kēlā me kēia mea o ka papa inoa kolamu a hana i kahi lālani hou.
unnest_wider() lawe i kēlā me kēia mea o ka papa inoa kolamu a hana i kahi kolamu hou.
unnest_auto() hoʻoholo 'akomi i ka hana kūpono e hoʻohana ai unnest_longer() ai ole ia, unnest_wider().
hoist() like me unnest_wider() akā koho wale i nā ʻāpana i kuhikuhi ʻia a hiki iā ʻoe ke hana me nā pae o ka nesting.
ʻO ka hapa nui o nā pilikia e pili ana i ka lawe ʻana i nā ʻikepili i hoʻonohonoho ʻole ʻia me nā pae he nui o ka nesting i loko o kahi papa ʻelua-dimensional hiki ke hoʻoholo ʻia ma ka hoʻohui ʻana i nā hana i helu ʻia me dplyr.
No ka hōʻike ʻana i kēia mau ʻenehana, e hoʻohana mākou i ka pūʻolo repurrrsive, e hāʻawi ana i nā papa inoa paʻakikī he nui i loaʻa mai kahi API pūnaewele.
E hoʻomaka gh_mea hoʻohana, he papa inoa i loaʻa ka ʻike e pili ana i ʻeono mau mea hoʻohana GitHub. E hoʻololi mua i ka papa inoa gh_mea hoʻohana в tibble kiʻi:
users <- tibble( user = gh_users )
He mea kūʻē iki kēia: no ke aha e hāʻawi ai i kahi papa inoa gh_mea hoʻohana, i kahi hoʻolālā ʻikepili paʻakikī? Akā ʻoi aku ka maikaʻi o ka ʻikepili: hoʻohui ia i nā vectors he nui i ʻike ʻia nā mea āpau i hoʻokahi mea.
ʻO kēlā me kēia mea mea users he papa inoa i hōʻike ʻia kēlā me kēia mea i kahi kolamu.
I kēia hihia, loaʻa iā mākou kahi papa ʻaina he 30 kolamu, ʻaʻole pono mākou i ka hapa nui o lākou, no laila hiki iā mākou ke unnest_wider() hoʻohana hoist(). hoist() hiki iā mākou ke unuhi i nā mea i koho ʻia me ka hoʻohana ʻana i ka syntax like purrr::pluck():
users %>% hoist(user,
followers = "followers",
login = "login",
url = "html_url"
)
#> # A tibble: 6 x 4
#> followers login url user
#> <int> <chr> <chr> <list>
#> 1 303 gaborcsardi https://github.com/gaborcsardi <named list [27]>
#> 2 780 jennybc https://github.com/jennybc <named list [27]>
#> 3 3958 jtleek https://github.com/jtleek <named list [27]>
#> 4 115 juliasilge https://github.com/juliasilge <named list [27]>
#> 5 213 leeper https://github.com/leeper <named list [27]>
#> 6 34 masalmon https://github.com/masalmon <named list [27]>
hoist() wehe i nā ʻāpana i kapa ʻia mai kahi papa inoa kolamu mea hoʻohanano laila hiki iā ʻoe ke noʻonoʻo hoist() e like me ka neʻe ʻana i nā ʻāpana mai ka papa inoa o loko o kahi kiʻi lā i kona pae kiʻekiʻe.
Nā waihona waihona Github
Hoʻopololei papa inoa gh_repos hoʻomaka mākou e like me ka hoʻololi ʻana iā ia i tibble:
ʻO kēia manawa nā mea mea hoʻohana hōʻike i kahi papa inoa o nā waihona i loaʻa i kēia mea hoʻohana. ʻO kēlā me kēia waihona kahi nānā kaʻawale, no laila e like me ka manaʻo o ka ʻikepili maʻemaʻe (kokoke. e lilo lākou i mau laina hou, ʻo ia ke kumu e hoʻohana ai mākou unnest_longer() aka aole nae unnest_wider():
repos <- repos %>% unnest_longer(repo)
repos
#> # A tibble: 176 x 1
#> repo
#> <list>
#> 1 <named list [68]>
#> 2 <named list [68]>
#> 3 <named list [68]>
#> 4 <named list [68]>
#> 5 <named list [68]>
#> 6 <named list [68]>
#> 7 <named list [68]>
#> 8 <named list [68]>
#> 9 <named list [68]>
#> 10 <named list [68]>
#> # … with 166 more rows
I kēia manawa hiki iā mākou ke hoʻohana unnest_wider() ai ole ia, hoist() :
repos %>% hoist(repo,
login = c("owner", "login"),
name = "name",
homepage = "homepage",
watchers = "watchers_count"
)
#> # A tibble: 176 x 5
#> login name homepage watchers repo
#> <chr> <chr> <chr> <int> <list>
#> 1 gaborcsardi after <NA> 5 <named list [65]>
#> 2 gaborcsardi argufy <NA> 19 <named list [65]>
#> 3 gaborcsardi ask <NA> 5 <named list [65]>
#> 4 gaborcsardi baseimports <NA> 0 <named list [65]>
#> 5 gaborcsardi citest <NA> 0 <named list [65]>
#> 6 gaborcsardi clisymbols "" 18 <named list [65]>
#> 7 gaborcsardi cmaker <NA> 0 <named list [65]>
#> 8 gaborcsardi cmark <NA> 0 <named list [65]>
#> 9 gaborcsardi conditions <NA> 0 <named list [65]>
#> 10 gaborcsardi crayon <NA> 52 <named list [65]>
#> # … with 166 more rows
E nānā i ka hoʻohana c("owner", "login"): ʻAe kēia iā mākou e kiʻi i ka waiwai pae ʻelua mai kahi papa inoa pūnana owner. ʻO kahi ala ʻē aʻe e kiʻi i ka papa inoa holoʻokoʻa owner a laila hoʻohana i ka hana unnest_wider() e hoʻokomo i kēlā me kēia mea i loko o kahi kolamu:
Ma mua o ka noʻonoʻo ʻana i ke koho ʻana i ka hana kūpono unnest_longer() ai ole ia, unnest_wider() hiki iā ʻoe ke hoʻohana unnest_auto(). Hoʻohana kēia hana i nā ʻano heuristic e koho i ka hana kūpono loa no ka hoʻololi ʻana i ka ʻikepili, a hōʻike i kahi leka e pili ana i ke ʻano i koho ʻia.
got_chars loaʻa i kahi ʻano like me gh_users: He pūʻulu kēia o nā papa inoa, kahi e wehewehe ai kēlā me kēia mea o ka papa inoa o loko i kekahi ʻano o kahi ʻano Game of Thrones. lawe mai got_chars No ka nānā ʻana i ka papaʻaina, hoʻomaka mākou ma ka hana ʻana i kahi kiʻi lā, e like me nā hiʻohiʻona mua, a laila hoʻololi i kēlā me kēia mea i kahi kolamu ʻokoʻa:
chars <- tibble(char = got_chars)
chars
#> # A tibble: 30 x 1
#> char
#> <list>
#> 1 <named list [18]>
#> 2 <named list [18]>
#> 3 <named list [18]>
#> 4 <named list [18]>
#> 5 <named list [18]>
#> 6 <named list [18]>
#> 7 <named list [18]>
#> 8 <named list [18]>
#> 9 <named list [18]>
#> 10 <named list [18]>
#> # … with 20 more rows
chars2 <- chars %>% unnest_wider(char)
chars2
#> # A tibble: 30 x 18
#> url id name gender culture born died alive titles aliases father
#> <chr> <int> <chr> <chr> <chr> <chr> <chr> <lgl> <list> <list> <chr>
#> 1 http… 1022 Theo… Male Ironbo… In 2… "" TRUE <chr … <chr [… ""
#> 2 http… 1052 Tyri… Male "" In 2… "" TRUE <chr … <chr [… ""
#> 3 http… 1074 Vict… Male Ironbo… In 2… "" TRUE <chr … <chr [… ""
#> 4 http… 1109 Will Male "" "" In 2… FALSE <chr … <chr [… ""
#> 5 http… 1166 Areo… Male Norvos… In 2… "" TRUE <chr … <chr [… ""
#> 6 http… 1267 Chett Male "" At H… In 2… FALSE <chr … <chr [… ""
#> 7 http… 1295 Cres… Male "" In 2… In 2… FALSE <chr … <chr [… ""
#> 8 http… 130 Aria… Female Dornish In 2… "" TRUE <chr … <chr [… ""
#> 9 http… 1303 Daen… Female Valyri… In 2… "" TRUE <chr … <chr [… ""
#> 10 http… 1319 Davo… Male Wester… In 2… "" TRUE <chr … <chr [… ""
#> # … with 20 more rows, and 7 more variables: mother <chr>, spouse <chr>,
#> # allegiances <list>, books <list>, povBooks <list>, tvSeries <list>,
#> # playedBy <list>
'ole got_chars ʻoi aku ka paʻakikī ma mua o gh_users, no ka mea kekahi mau mea papa inoa char ʻO lākou iho he papa inoa, ma muli o ka loaʻa ʻana o nā pou - papa inoa:
ʻO kāu mau hana hou aʻe e pili ana i nā pahuhopu o ka hoʻopaʻa ʻana. Pono paha ʻoe e kau i ka ʻike ma nā laina no kēlā me kēia puke a me nā moʻolelo i ʻike ʻia ai ke ʻano:
chars2 %>%
select(name, books, tvSeries) %>%
pivot_longer(c(books, tvSeries), names_to = "media", values_to = "value") %>%
unnest_longer(value)
#> # A tibble: 180 x 3
#> name media value
#> <chr> <chr> <chr>
#> 1 Theon Greyjoy books A Game of Thrones
#> 2 Theon Greyjoy books A Storm of Swords
#> 3 Theon Greyjoy books A Feast for Crows
#> 4 Theon Greyjoy tvSeries Season 1
#> 5 Theon Greyjoy tvSeries Season 2
#> 6 Theon Greyjoy tvSeries Season 3
#> 7 Theon Greyjoy tvSeries Season 4
#> 8 Theon Greyjoy tvSeries Season 5
#> 9 Theon Greyjoy tvSeries Season 6
#> 10 Tyrion Lannister books A Feast for Crows
#> # … with 170 more rows
A i ʻole makemake paha ʻoe e hana i kahi papa e hiki ai iā ʻoe ke hoʻohālikelike i ke ʻano a me ka hana:
chars2 %>%
select(name, title = titles) %>%
unnest_longer(title)
#> # A tibble: 60 x 2
#> name title
#> <chr> <chr>
#> 1 Theon Greyjoy Prince of Winterfell
#> 2 Theon Greyjoy Captain of Sea Bitch
#> 3 Theon Greyjoy Lord of the Iron Islands (by law of the green lands)
#> 4 Tyrion Lannister Acting Hand of the King (former)
#> 5 Tyrion Lannister Master of Coin (former)
#> 6 Victarion Greyjoy Lord Captain of the Iron Fleet
#> 7 Victarion Greyjoy Master of the Iron Victory
#> 8 Will ""
#> 9 Areo Hotah Captain of the Guard at Sunspear
#> 10 Chett ""
#> # … with 50 more rows
(E hoʻomanaʻo i nā waiwai ʻole "" ma ke kula title, ma muli o nā hewa i hoʻokomo ʻia i ka ʻikepili got_chars: ʻoiaʻiʻo, nā kiʻi no ka mea ʻaʻohe puke pili a me nā poʻo inoa TV ma ke kula title Pono e loaʻa i kahi vector o ka lōʻihi 0, ʻaʻole kahi vector o ka lōʻihi 1 i loaʻa ke kaula hakahaka.)
Hiki iā mākou ke kākau hou i ka laʻana i luna me ka hoʻohana ʻana i ka hana unnest_auto(). He kūpono kēia ala no ka nānā ʻana i hoʻokahi manawa, akā ʻaʻole pono ʻoe e hilinaʻi unnest_auto() no ka hoohana mau. ʻO ka manaʻo inā hoʻololi kāu ʻōnaehana data unnest_auto() hiki ke hoʻololi i ka mīkini hoʻololi ʻikepili i koho ʻia inā hoʻonui ʻo ia i nā kolamu papa inoa i nā lālani me ka hoʻohana ʻana unnest_longer(), a laila i ka wā e hoʻololi ai ke ʻano o ka ʻikepili e hiki mai ana, hiki ke hoʻololi ʻia ka loiloi i ke aloha unnest_wider(), a me ka hoʻohana mau ʻana i kēia ala hiki ke alakaʻi i nā hewa i manaʻo ʻole ʻia.
tibble(char = got_chars) %>%
unnest_auto(char) %>%
select(name, title = titles) %>%
unnest_auto(title)
#> Using `unnest_wider(char)`; elements have 18 names in common
#> Using `unnest_longer(title)`; no element has names
#> # A tibble: 60 x 2
#> name title
#> <chr> <chr>
#> 1 Theon Greyjoy Prince of Winterfell
#> 2 Theon Greyjoy Captain of Sea Bitch
#> 3 Theon Greyjoy Lord of the Iron Islands (by law of the green lands)
#> 4 Tyrion Lannister Acting Hand of the King (former)
#> 5 Tyrion Lannister Master of Coin (former)
#> 6 Victarion Greyjoy Lord Captain of the Iron Fleet
#> 7 Victarion Greyjoy Master of the Iron Victory
#> 8 Will ""
#> 9 Areo Hotah Captain of the Guard at Sunspear
#> 10 Chett ""
#> # … with 50 more rows
Geocoding me Google
A laila, e nānā mākou i kahi ʻano paʻakikī o ka ʻikepili i loaʻa mai ka lawelawe geocoding a Google. ʻAʻole kūʻē nā palapala hōʻoia ʻana i nā lula o ka hana ʻana me ka API palapala ʻāina Google, no laila e kākau mua wau i kahi wrapper maʻalahi a puni ka API. Hoʻokumu ʻia ma ka mālama ʻana i ke kī Google Maps API i loko o kahi loli kaiapuni; Inā ʻaʻole ʻoe i ke kī no ka hana ʻana me ka Google Maps API i mālama ʻia i loko o kāu mau ʻano kaiapuni, ʻaʻole e hoʻokō ʻia nā ʻāpana code i hōʻike ʻia ma kēia ʻāpana.
has_key <- !identical(Sys.getenv("GOOGLE_MAPS_API_KEY"), "")
if (!has_key) {
message("No Google Maps API key found; code chunks will not be run")
}
# https://developers.google.com/maps/documentation/geocoding
geocode <- function(address, api_key = Sys.getenv("GOOGLE_MAPS_API_KEY")) {
url <- "https://maps.googleapis.com/maps/api/geocode/json"
url <- paste0(url, "?address=", URLencode(address), "&key=", api_key)
jsonlite::read_json(url)
}
ʻO ka mea pōmaikaʻi, hiki iā mākou ke hoʻoponopono i ka pilikia o ka hoʻololi ʻana i kēia ʻikepili i kahi papa kuhikuhi i kēlā me kēia pae me ka hoʻohana ʻana i nā hana tidyr. I mea e paʻakikī a ʻoiaʻiʻo hoʻi ka hana, e hoʻomaka wau ma ka geocoding i kekahi mau kūlanakauhale:
city <- c ( "Houston" , "LA" , "New York" , "Chicago" , "Springfield" ) city_geo <- purrr::map (city, geocode)
E hoʻololi au i ka hopena hopena i loko tibble, no ka maʻalahi, e hoʻohui au i kahi kolamu me ka inoa kūlanakauhale pili.
loc <- tibble(city = city, json = city_geo)
loc
#> # A tibble: 5 x 2
#> city json
#> <chr> <list>
#> 1 Houston <named list [2]>
#> 2 LA <named list [2]>
#> 3 New York <named list [2]>
#> 4 Chicago <named list [2]>
#> 5 Springfield <named list [2]>
Aia ka pae mua i nā ʻāpana status и result, hiki iā mākou ke hoʻonui me unnest_wider() :
loc %>%
unnest_wider(json)
#> # A tibble: 5 x 3
#> city results status
#> <chr> <list> <chr>
#> 1 Houston <list [1]> OK
#> 2 LA <list [1]> OK
#> 3 New York <list [1]> OK
#> 4 Chicago <list [1]> OK
#> 5 Springfield <list [1]> OK
kahakaha i results he papa helu helu lehulehu. ʻO ka hapa nui o nā kūlanakauhale he 1 mea (e hōʻike ana i kahi waiwai kūʻokoʻa e pili ana i ka geocoding API), akā ʻelua ʻo Springfield. Hiki iā mākou ke huki iā lākou i nā laina ʻokoʻa me unnest_longer() :
loc %>%
unnest_wider(json) %>%
unnest_longer(results)
#> # A tibble: 5 x 3
#> city results status
#> <chr> <list> <chr>
#> 1 Houston <named list [5]> OK
#> 2 LA <named list [5]> OK
#> 3 New York <named list [5]> OK
#> 4 Chicago <named list [5]> OK
#> 5 Springfield <named list [5]> OK
I kēia manawa ua loaʻa iā lākou nā ʻāpana like, hiki ke hōʻoia ʻia me ka hoʻohana ʻana unnest_wider():
loc %>%
unnest_wider(json) %>%
unnest_longer(results) %>%
unnest_wider(results)
#> # A tibble: 5 x 7
#> city address_componen… formatted_addre… geometry place_id types status
#> <chr> <list> <chr> <list> <chr> <lis> <chr>
#> 1 Houst… <list [4]> Houston, TX, USA <named … ChIJAYWN… <lis… OK
#> 2 LA <list [4]> Los Angeles, CA… <named … ChIJE9on… <lis… OK
#> 3 New Y… <list [3]> New York, NY, U… <named … ChIJOwg_… <lis… OK
#> 4 Chica… <list [4]> Chicago, IL, USA <named … ChIJ7cv0… <lis… OK
#> 5 Sprin… <list [5]> Springfield, MO… <named … ChIJP5jI… <lis… OK
Hiki iā mākou ke loaʻa ka latitude a me ka longitude coordinate o kēlā me kēia kūlanakauhale ma ka hoʻonui ʻana i ka papa inoa geometry:
loc %>%
unnest_wider(json) %>%
unnest_longer(results) %>%
unnest_wider(results) %>%
unnest_wider(geometry)
#> # A tibble: 5 x 10
#> city address_compone… formatted_addre… bounds location location_type
#> <chr> <list> <chr> <list> <list> <chr>
#> 1 Hous… <list [4]> Houston, TX, USA <name… <named … APPROXIMATE
#> 2 LA <list [4]> Los Angeles, CA… <name… <named … APPROXIMATE
#> 3 New … <list [3]> New York, NY, U… <name… <named … APPROXIMATE
#> 4 Chic… <list [4]> Chicago, IL, USA <name… <named … APPROXIMATE
#> 5 Spri… <list [5]> Springfield, MO… <name… <named … APPROXIMATE
#> # … with 4 more variables: viewport <list>, place_id <chr>, types <list>,
#> # status <chr>
A laila ka wahi āu e pono ai e hoʻonui location:
loc %>%
unnest_wider(json) %>%
unnest_longer(results) %>%
unnest_wider(results) %>%
unnest_wider(geometry) %>%
unnest_wider(location)
#> # A tibble: 5 x 11
#> city address_compone… formatted_addre… bounds lat lng location_type
#> <chr> <list> <chr> <list> <dbl> <dbl> <chr>
#> 1 Hous… <list [4]> Houston, TX, USA <name… 29.8 -95.4 APPROXIMATE
#> 2 LA <list [4]> Los Angeles, CA… <name… 34.1 -118. APPROXIMATE
#> 3 New … <list [3]> New York, NY, U… <name… 40.7 -74.0 APPROXIMATE
#> 4 Chic… <list [4]> Chicago, IL, USA <name… 41.9 -87.6 APPROXIMATE
#> 5 Spri… <list [5]> Springfield, MO… <name… 37.2 -93.3 APPROXIMATE
#> # … with 4 more variables: viewport <list>, place_id <chr>, types <list>,
#> # status <chr>
Eia hou, unnest_auto() hoʻomāmā i ka hana i wehewehe ʻia me kekahi mau pilikia i hiki ke hoʻololi ʻia i ke ʻano o ka ʻikepili e hiki mai ana:
loc %>%
unnest_auto(json) %>%
unnest_auto(results) %>%
unnest_auto(results) %>%
unnest_auto(geometry) %>%
unnest_auto(location)
#> Using `unnest_wider(json)`; elements have 2 names in common
#> Using `unnest_longer(results)`; no element has names
#> Using `unnest_wider(results)`; elements have 5 names in common
#> Using `unnest_wider(geometry)`; elements have 4 names in common
#> Using `unnest_wider(location)`; elements have 2 names in common
#> # A tibble: 5 x 11
#> city address_compone… formatted_addre… bounds lat lng location_type
#> <chr> <list> <chr> <list> <dbl> <dbl> <chr>
#> 1 Hous… <list [4]> Houston, TX, USA <name… 29.8 -95.4 APPROXIMATE
#> 2 LA <list [4]> Los Angeles, CA… <name… 34.1 -118. APPROXIMATE
#> 3 New … <list [3]> New York, NY, U… <name… 40.7 -74.0 APPROXIMATE
#> 4 Chic… <list [4]> Chicago, IL, USA <name… 41.9 -87.6 APPROXIMATE
#> 5 Spri… <list [5]> Springfield, MO… <name… 37.2 -93.3 APPROXIMATE
#> # … with 4 more variables: viewport <list>, place_id <chr>, types <list>,
#> # status <chr>
Hiki iā mākou ke nānā wale i ka helu mua no kēlā me kēia kūlanakauhale:
loc %>%
unnest_wider(json) %>%
hoist(results, first_result = 1) %>%
unnest_wider(first_result) %>%
unnest_wider(geometry) %>%
unnest_wider(location)
#> # A tibble: 5 x 11
#> city address_compone… formatted_addre… bounds lat lng location_type
#> <chr> <list> <chr> <list> <dbl> <dbl> <chr>
#> 1 Hous… <list [4]> Houston, TX, USA <name… 29.8 -95.4 APPROXIMATE
#> 2 LA <list [4]> Los Angeles, CA… <name… 34.1 -118. APPROXIMATE
#> 3 New … <list [3]> New York, NY, U… <name… 40.7 -74.0 APPROXIMATE
#> 4 Chic… <list [4]> Chicago, IL, USA <name… 41.9 -87.6 APPROXIMATE
#> 5 Spri… <list [5]> Springfield, MO… <name… 37.2 -93.3 APPROXIMATE
#> # … with 4 more variables: viewport <list>, place_id <chr>, types <list>,
#> # status <chr>
A i ʻole hoʻohana hoist() no ka luʻu ʻano he nui e hele pololei i lat и lng.
loc %>%
hoist(json,
lat = list("results", 1, "geometry", "location", "lat"),
lng = list("results", 1, "geometry", "location", "lng")
)
#> # A tibble: 5 x 4
#> city lat lng json
#> <chr> <dbl> <dbl> <list>
#> 1 Houston 29.8 -95.4 <named list [2]>
#> 2 LA 34.1 -118. <named list [2]>
#> 3 New York 40.7 -74.0 <named list [2]>
#> 4 Chicago 41.9 -87.6 <named list [2]>
#> 5 Springfield 37.2 -93.3 <named list [2]>
Discography of Sharla Gelfand
ʻO ka mea hope loa, e nānā mākou i ke ʻano paʻakikī loa - ka discography o Sharla Gelfand. E like me nā laʻana ma luna, hoʻomaka mākou ma ka hoʻololi ʻana i ka papa inoa i kahi kiʻi ʻikepili hoʻokahi kolamu, a laila e hoʻolōʻihi i kēlā me kēia ʻāpana he kolamu ʻokoʻa. Hoʻololi wau i ke kolamu date_added i ka lā a me ka manawa kūpono ma R.
discs <- tibble(disc = discog) %>%
unnest_wider(disc) %>%
mutate(date_added = as.POSIXct(strptime(date_added, "%Y-%m-%dT%H:%M:%S")))
discs
#> # A tibble: 155 x 5
#> instance_id date_added basic_information id rating
#> <int> <dttm> <list> <int> <int>
#> 1 354823933 2019-02-16 17:48:59 <named list [11]> 7496378 0
#> 2 354092601 2019-02-13 14:13:11 <named list [11]> 4490852 0
#> 3 354091476 2019-02-13 14:07:23 <named list [11]> 9827276 0
#> 4 351244906 2019-02-02 11:39:58 <named list [11]> 9769203 0
#> 5 351244801 2019-02-02 11:39:37 <named list [11]> 7237138 0
#> 6 351052065 2019-02-01 20:40:53 <named list [11]> 13117042 0
#> 7 350315345 2019-01-29 15:48:37 <named list [11]> 7113575 0
#> 8 350315103 2019-01-29 15:47:22 <named list [11]> 10540713 0
#> 9 350314507 2019-01-29 15:44:08 <named list [11]> 11260950 0
#> 10 350314047 2019-01-29 15:41:35 <named list [11]> 11726853 0
#> # … with 145 more rows
Ma kēia pae, loaʻa iā mākou ka ʻike e pili ana i ka wā i hoʻohui ʻia ai kēlā me kēia disc i ka discography a Sharla, akā ʻaʻole mākou ʻike i kekahi ʻikepili e pili ana i kēlā mau disc. No ka hana ʻana i kēia, pono mākou e hoʻonui i ke kolamu basic_information:
discs %>% unnest_wider(basic_information)
#> Column name `id` must not be duplicated.
#> Use .name_repair to specify repair.
ʻO ka mea pōʻino, e loaʻa iā mākou kahi hewa, no ka mea... i loko o ka papa inoa basic_information aia he kolamu o ka inoa hookahi basic_information. Inā loaʻa kēlā hewa, i mea e hoʻoholo wikiwiki ai i kona kumu, hiki iā ʻoe ke hoʻohana names_repair = "unique":
Hiki iā ʻoe ke hoʻohui iā lākou i ka ʻikepili kumu e pono ai.
hopena
I ke kumu o ka waihona tidyverse loaʻa i nā pūʻolo waiwai he nui i hui pū ʻia e kahi manaʻo hoʻoili ʻikepili maʻamau.
Ma kēia ʻatikala ua nānā mākou i ka ʻohana o nā hana unnest_*(), i manaʻo ʻia e hana me ka unuhi ʻana i nā mea mai nā papa inoa pūnana. Aia kēia pūʻolo i nā hiʻohiʻona pono ʻē aʻe e maʻalahi ai ka hoʻololi ʻana i ka ʻikepili e like me ka manaʻo ʻIkepili Māmā.