ProHoster > Blog > Pulega > Fa'ateleina koluma fa'amomoli - lisi e fa'aaoga ai le gagana R (tidyr package ma galuega a le aiga e le'i nofo)
Fa'ateleina koluma fa'amomoli - lisi e fa'aaoga ai le gagana R (tidyr package ma galuega a le aiga e le'i nofo)
I le tele o tulaga, pe a galue ma se tali na maua mai se API, poʻo soʻo se isi faʻamatalaga o loʻo i ai se fausaga laʻau lavelave, o loʻo e feagai ma JSON ma XML formats.
O nei faʻatulagaga e tele mea lelei: latou te teuina faʻamaumauga faʻapitoa ma faʻatagaina oe e aloese mai le faʻaluaina le manaʻomia o faʻamatalaga.
O le le lelei o nei faʻatulagaga o le lavelave o latou gaioiga ma auʻiliʻiliga. E le mafai ona fa'aogaina fa'amaumauga e le'i fa'atulagaina i fa'atusatusaga ma e le mafai ona fausia i luga le fa'aaliga.
O lenei tusiga o se fa'aauauina talafeagai o le lomiga "R package tidyr ma ana galuega fou pivot_longer ma pivot_wider". O le a fesoasoani ia te oe e aumaia faʻamaumauga e leʻi faʻatulagaina i se masani ma talafeagai mo suʻesuʻega faʻasologa faʻasologa e faʻaaoga ai le afifi tidyr, e aofia i totonu o le faletusi tidyverse, ma lona aiga o galuega unnest_*().
Mataupu
Afai e te fiafia i suʻesuʻega faʻamatalaga, atonu e te fiafia i laʻu telefoni и YouTube alavai. O le tele o mea o lo'o tu'uina atu i le gagana R.
Fa'ata'amilosaga(faamatalaga a le faaliliu, ou te lei mauaina ni filifiliga faaliliu talafeagai mo lenei vaitaimi, o lea o le a tatou tuu ai e pei ona i ai.) o le fa'agasologa lea o le aumaia o fa'amaumauga e le'i fa'atulagaina ma fa'aputuga fa'aputu i totonu o se laulau fa'a-lua e iai laina masani ma koluma. IN tidyr E tele galuega o le a fesoasoani ia te oe e faʻalauteleina koluma lisi faʻapipiʻi ma faʻaititia le faʻamaumauga i se faʻataʻitaʻi, faʻamaufaʻailoga:
unnest_longer() ave elemene ta'itasi o le lisi koluma ma fai ai se laina fou.
unnest_wider() ave elemene ta'itasi o le lisi o koluma ma fai se koluma fou.
unnest_auto() e otometi lava ona fuafua po o fea galuega e sili ona fa'aoga unnest_longer() poʻo unnest_wider().
hoist() tutusa ma unnest_wider() ae filifili na'o vaega fa'apitoa ma fa'atagaina oe e galue i le tele o tulaga o fa'aputuga.
O le tele o faʻafitauli e fesoʻotaʻi ma le aumaia o faʻamatalaga e leʻi faʻatulagaina ma le tele o laʻasaga o le ofaga i totonu o se laulau lua-dimensional e mafai ona foia e ala i le tuʻufaʻatasia o galuega o loʻo lisiina ma le dplyr.
Ina ia faʻaalia nei metotia, matou te faʻaogaina le afifi repurrrsive, lea e maua ai le tele o lisi lavelave, tele-tulaga e maua mai i le API web.
Tatou amata i le gh_users, o se lisi o loʻo i ai faʻamatalaga e uiga i tagata e ono GitHub. Muamua tatou suia le lisi gh_users в tibble faavaa:
users <- tibble( user = gh_users )
E foliga mai e fai si fa'afeagai: aisea e tu'u ai se lisi gh_users, i se fausaga fa'amaumauga e sili atu ona lavelave? Ae o se fa'amaumauga o fa'amaumauga e iai se avanoa tele: e tu'ufa'atasia ai le tele o vectors ina ia siaki mea uma i se mea e tasi.
O mea faitino elemene taitasi users o se lisi fa'aigoaina lea e fa'atusa ai elemene ta'itasi se koluma.
I lenei tulaga, o loʻo i ai le matou laulau e aofia ai le 30 koluma, ma o le a matou le manaʻomia le tele o na mea, o lea e mafai ai. unnest_wider() faʻaaoga hoist(). hoist() e mafai ai ona matou su'e vaega filifilia e fa'aaoga ai le syntax tutusa 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() ave'ese vaega fa'aigoaina fa'aigoaina mai se lisi koluma tagata faʻaaogāina ia mafai ona e mafaufau hoist() e pei o le fesiitaiga o vaega mai le lisi i totonu o se faavaa aso i lona tulaga maualuga.
Github faleoloa
Fa'aoga lisi gh_repos tatou amata faapena i le faaliliuina i tibble:
O le taimi lea o elemene tagata faʻaaogā fa'atusa se lisi o fale teu oloa e umia e lenei tagata fa'aoga. O fale teu oloa taʻitasi o se vaʻaiga eseese, e tusa ai ma le manatu o faʻamatalaga manino (pe tusa o fa'amaumauga mama) e tatau ona avea ma laina fou, o le mea lea tatou te faʻaaogaina unnest_longer() ae leai 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
O lea e mafai ona tatou faʻaaogaina unnest_wider() poʻo 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
Faalogo ile faʻaaogaina c("owner", "login"): Ole mea lea e mafai ai ona tatou maua le tulaga lona lua o tau mai se lisi fa'aputu owner. O se isi auala e maua ai le lisi atoa owner ona fa'aaoga lea o le galuega unnest_wider() tuu ona elemene taitasi i totonu o se koluma:
Nai lo le mafaufau i le filifilia o le galuega sa'o unnest_longer() poʻo unnest_wider() e mafai ona e faaaogaina unnest_auto(). O lenei galuega e faʻaaogaina ai le tele o metotia heuristic e filifili ai le galuega sili ona talafeagai mo le suia o faʻamaumauga, ma faʻaalia se feʻau e uiga i le auala filifilia.
got_chars ei ai se fausaga tutusa i gh_users: O se seti lea o lisi fa'aigoaina, lea e fa'amatala ai e elemene ta'itasi o le lisi i totonu nisi uiga o le Ta'aloga o Nofoalii amio. Aumai got_chars Mo le vaaiga o le laulau, matou te amata i le fatuina o se faʻavaa o aso, e pei lava o faʻataʻitaʻiga muamua, ona faʻaliliuina lea o elemene taʻitasi i se koluma eseese:
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>
Faʻavae got_chars fai si faigata nai lo gh_users, ona nisi vaega lisi char latou lava o se lisi, o se taunuuga tatou te maua pou - lisi:
O isi au gaioiga e fa'alagolago i sini o le au'ili'iliga. Atonu e te manaʻomia le tuʻuina o faʻamatalaga i luga o laina mo tusi taʻitasi ma faʻasologa o loʻo faʻaalia ai le tagata:
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
Pe atonu e te manaʻo e fai se laulau e mafai ai ona e faʻafetaui le uiga ma le galuega:
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
(Manatua le aoga gaogao "" i le fanua title, e mafua ona o mea sese na faia pe a tuʻuina faʻamatalaga i totonu got_chars: o le mea moni, o mataitusi e leai ni tusi talafeagai ma faʻasologa TV i le fanua title e tatau ona i ai se vea ole umi 0, ae le o se vea ole umi 1 o lo'o iai le manoa gaogao.)
E mafai ona tatou toe tusia le faʻataʻitaʻiga i luga e faʻaaoga ai le galuega unnest_auto(). O lenei faiga e faigofie mo suʻesuʻega e tasi le taimi, ae e le tatau ona e faʻalagolago i ai unnest_auto() mo le fa'aaogaina i taimi uma. O le manatu pe afai e suia lau fausaga faʻamaumauga unnest_auto() e mafai ona sui le faiga o suiga o fa'amaumauga ua filifilia pe a fa'auluina koluma lisi i laina fa'aoga unnest_longer(), pe a suia le fausaga o faʻamatalaga o loʻo oʻo mai, e mafai ona suia le faʻatatau i le fiafia unnest_wider(), ma o le faʻaaogaina o lenei auala i luga o le faʻaauau e mafai ona oʻo atu ai i mea sese e leʻi mafaufauina.
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 ma Google
Le isi, o le a tatou vaʻavaʻai i se fausaga sili atu ona faigata o faʻamaumauga na maua mai le Google's geocoding service. Fa'ailoga fa'ailoga e le tusa ai ma tulafono o le galue ma le Google maps API, o lea o le a ou tusia muamua se afifi faigofie ile API. Lea e fa'avae i le teuina o le Google Maps API ki i se fesuiaiga o le siosiomaga; Afai e leai sau ki mo le galue i le Google Maps API o loʻo teuina i au fesuiaiga o le siosiomaga, o le a le faʻataunuʻuina vaega faʻailoga o loʻo tuʻuina atu i lenei vaega.
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 le lisi e toe foʻi mai e lenei galuega e fai si lavelave:
O le mea e lelei ai, e mafai ona tatou foia le faʻafitauli o le faʻaliliuina o nei faʻamatalaga i totonu o se faʻasologa faʻasologa i lea laasaga ma lea laasaga e faʻaaoga ai galuega tidyr. Ina ia fai le galuega e sili atu ona luitauina ma moni, o le a ou amata i le geocoding o nai aai:
city <- c ( "Houston" , "LA" , "New York" , "Chicago" , "Springfield" ) city_geo <- purrr::map (city, geocode)
O le a ou faaliliuina le taunuuga o le taunuuga i tibble, mo le faʻaogagofie, o le a ou faʻaopoopoina se koluma ma le igoa o le aai e fetaui.
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]>
O le vaega muamua e iai vaega status и result, lea e mafai ona tatou faʻalauteleina 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
matau lena results o se lisi tele-tulaga. O le tele o 'a'ai e iai le elemene 1 (fa'atusalia se tau tulaga ese e fetaui ma le geocoding API), ae lua Springfield. E mafai ona tatou tosoina i latou i laina eseese ma 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
Ole taimi nei e tutusa uma lava vaega, e mafai ona faʻamaonia ile faʻaaogaina 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
E mafai ona tatou maua le latitu ma longitude faamaopoopo o aai taitasi e ala i le faalauteleina o le lisi 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>
Ona sosoo ai lea ma le nofoaga e te manaʻomia e faʻalautele ai 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>
Ae toe foi, unnest_auto() fa'afaigofie le fa'atinoina o fa'amatalaga ma nisi o a'afiaga e ono mafua mai i le suia o le fausaga o fa'amaumauga o lo'o o'o mai:
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>
E mafai foi ona tatou tilotilo i le tuatusi muamua mo aai taitasi:
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>
Pe fa'aaoga hoist() mo se maulu tele tulaga e alu sa'o i ai 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 a Sharla Gelfand
Mulimuli ane, o le a tatou vaʻavaʻai i le fausaga sili ona faigata - o le faʻasalalauga a Sharla Gelfand. E pei o faʻataʻitaʻiga o loʻo i luga, matou te amata i le faʻaliliuina o le lisi i se faʻamatalaga faʻamaumauga e tasi-koluma, ona faʻalautele lea ina ia avea vaega taʻitasi ma se koluma eseese. Ou te suia foi le koluma date_added i le aso ma le taimi talafeagai i le 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
I lenei tulaga, matou te maua faʻamatalaga e uiga i le taimi na faʻaopoopoina ai tisiketi taʻitasi i faʻasalalauga a Sharla, ae matou te le o vaʻaia ni faʻamatalaga e uiga i na tisiketi. Ina ia faia lenei mea e tatau ona tatou faʻalauteleina le koluma basic_information:
discs %>% unnest_wider(basic_information)
#> Column name `id` must not be duplicated.
#> Use .name_repair to specify repair.
Ae paga lea, o le a matou maua se mea sese, aua... i totonu o le lisi basic_information o lo'o i ai le koluma o le igoa lava e tasi basic_information. Afai e tupu se mea sese, ina ia vave iloa lona mafuaʻaga, e mafai ona e faʻaaogaina names_repair = "unique":
Ona mafai lea ona e toe faʻatasi ma i latou i tua i le faʻamaumauga muamua pe a manaʻomia.
iʻuga
I le totonugalemu o le faletusi tidyverse e aofia ai le tele o afifi aoga ua tu'ufa'atasia e se filosofia masani e fa'agasolo ai fa'amaumauga.
I lenei tusiga na matou suʻesuʻeina le aiga o galuega unnest_*(), o loʻo faʻamoemoe e galue ma le suʻeina o elemene mai lisi faʻapipiʻi. O lenei afifi o loʻo i ai le tele o isi mea aoga e faʻafaigofie ai ona faʻaliliu faʻamatalaga e tusa ai ma le manatu Fa'amama Fa'amatalaga.