เจเจผเจฟเจเจฆเจพเจคเจฐ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ, เจเจฆเฉเจ เจเฉฑเจ API เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเจตเจพเจฌ, เจเจพเจ เจเจฟเจธเฉ เจนเฉเจฐ เจกเฉเจเจพ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจฐเฉเฉฑเจ เจฌเจฃเจคเจฐ เจนเฉ, เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจคเฉเจนเจพเจจเฉเฉฐ JSON เจ เจคเฉ XML เจซเจพเจฐเจฎเฉเจเจพเจ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจนเฉเฅค
เจเจนเจจเจพเจ เจซเจพเจฐเจฎเฉเจเจพเจ เจฆเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจซเจพเจเจฆเฉ เจนเจจ: เจเจน เจกเฉเจเจพ เจจเฉเฉฐ เจเจพเจซเจผเฉ เจธเฉฐเจเฉเจช เจฐเฉเจช เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐเจฆเฉ เจนเจจ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจพเจฃเจเจพเจฐเฉ เจฆเฉ เจฌเฉเจฒเฉเฉเฉ เจจเจเจฒ เจคเฉเจ เจฌเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค
เจเจนเจจเจพเจ เจซเจพเจฐเจฎเฉเจเจพเจ เจฆเจพ เจจเฉเจเจธเจพเจจ เจเจนเจจเจพเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจ เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเฉ เจเฉเฉฐเจเจฒเจคเจพ เจนเฉ. เจเฉเจฐ-เจธเฉฐเจเจ เจฟเจค เจกเฉเจเจพ เจจเฉเฉฐ เจเจฃเจจเจพเจตเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฟเจ เจจเจนเฉเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจธ เจเฉฑเจคเฉ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจจเจนเฉเจ เจฌเจฃเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจน เจฒเฉเจ เจชเฉเจฐเจเจพเจธเจผเจจ เจฆเฉ เจเฉฑเจ เจคเจฐเจเจชเฉเจฐเจจ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ เจนเฉ tidyr
, เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจเฉเจฐ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉ tidyverse
, เจ
เจคเฉ เจเจธเจฆเฉ เจเจพเจฐเจเจพเจ เจฆเจพ เจชเจฐเจฟเจตเจพเจฐ unnest_*()
.
เจธเจฎเฉฑเจเจฐเฉ
เจเฉ เจคเฉเจธเฉเจ เจกเฉเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฎเฉเจฐเฉ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ
เจเจพเจฃ เจชเจเจพเจฃ GitHub เจเจชเจญเฉเจเจคเจพ Github เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจเฉเจฎ เจเจซเจผ เจฅเฉเจฐเฉเจจเจธ เจฆเฉ เจเจฟเจฐเจฆเจพเจฐ เจเฉเจเจฒ เจฆเฉ เจจเจพเจฒ เจเฉเจเจเฉเจกเจฟเฉฐเจ เจธเจผเจพเจฐเจฒเจพ เจเฉเจฒเจซเฉเจเจก เจฆเฉ เจกเจฟเจธเจเฉเจเฉเจฐเจพเจซเฉ เจธเจฟเฉฑเจเจพ
เจเจพเจฃ เจชเจเจพเจฃ
เจเจเจคเจพเจเจพเจฐ (เจ
เจจเฉเจตเจพเจฆเจ เจฆเจพ เจจเฉเจ, เจฎเฉเจจเฉเฉฐ เจเจธ เจธเจผเจฌเจฆ เจฒเจ เจเจเจฟเจค เจ
เจจเฉเจตเจพเจฆ เจตเจฟเจเจฒเจช เจจเจนเฉเจ เจฎเจฟเจฒเฉ, เจเจธเจฒเจ เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉ เจเฉฑเจก เจฆเฉเจตเจพเจเจเฉเฅค) เจเจพเจฃเฉ เจเจคเจพเจฐเจพเจ เจ
เจคเฉ เจเจพเจฒเจฎเจพเจ เจตเจพเจฒเฉ เจเฉฑเจ เจฆเฉ-เจ
เจฏเจพเจฎเฉ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจจเฉเจธเจเจก เจเจฐเฉ เจฆเฉ เจจเจพเจฒ เจเฉเจฐ-เจธเฉฐเจเจ เจฟเจค เจกเฉเจเจพ เจฒเจฟเจเจเจฃ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจนเฉเฅค IN tidyr
เจเฉฑเจฅเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจซเฉฐเจเจธเจผเจจ เจนเจจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจจเฉเจธเจเจก เจธเฉเจเฉ เจเจพเจฒเจฎเจพเจ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจจ เจ
เจคเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจเจเจคเจพเจเจพเจฐ, เจเฉเจฌเฉเจฒเจฐ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจเจพเจเจฃ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเจจเจเฉ:
unnest_longer()
เจเจพเจฒเจฎ เจธเฉเจเฉ เจฆเฉ เจนเจฐเฉเจ เจคเฉฑเจค เจจเฉเฉฐ เจฒเฉเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจจเจตเฉเจ เจเจคเจพเจฐ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅคunnest_wider()
เจเจพเจฒเจฎ เจธเฉเจเฉ เจฆเฉ เจนเจฐเฉเจ เจคเฉฑเจค เจจเฉเฉฐ เจฒเฉเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจจเจตเจพเจ เจเจพเจฒเจฎ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅคunnest_auto()
เจเจเฉเจฎเฉเจเจฟเจ เจนเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจฟเจนเฉเจพ เจซเฉฐเจเจธเจผเจจ เจตเจฐเจคเจฃเจพ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจนเฉ
unnest_longer()
เจunnest_wider()
.hoist()
เจฆเฉ เจตเจฐเจเจพunnest_wider()
เจชเจฐ เจธเจฟเจฐเจซเจผ เจจเจฟเจฐเจงเจพเจฐเจค เจญเจพเจเจพเจ เจฆเฉ เจเฉเจฃ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฒเฉเจนเจฃเฉ เจฆเฉ เจเจ เจชเฉฑเจงเจฐเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจฆเฉ-เจ เจฏเจพเจฎเฉ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเจฒเฉเจนเจฃเฉ เจฆเฉ เจเจ เจชเฉฑเจงเจฐเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉเจฐ-เจธเฉฐเจเจ เจฟเจค เจกเฉเจเจพ เจฒเจฟเจเจเจฃ เจจเจพเจฒ เจเฉเฉเฉเจเจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจธเฉเจเฉเจฌเฉฑเจง เจซเฉฐเจเจธเจผเจจเจพเจ เจจเฉเฉฐ dplyr เจจเจพเจฒ เจเฉเฉ เจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจนเจจเจพเจ เจคเจเจจเฉเจเจพเจ เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจชเฉเจเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ repurrrsive
, เจเฉ เจเจฟ เจเฉฑเจ เจตเฉเฉฑเจฌ API เจคเฉเจ เจฒเจฟเจ เจเจฟเจ เจเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ, เจฌเจนเฉ-เจชเฉฑเจงเจฐเฉ เจธเฉเจเฉเจเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
library(tidyr)
library(dplyr)
library(repurrrsive)
GitHub เจเจชเจญเฉเจเจคเจพ
เจฆเฉ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ gh_users, เจเฉฑเจ เจธเฉเจเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉ GitHub เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจธเจผเจพเจฎเจฒ เจนเฉเฅค เจชเจนเจฟเจฒเจพเจ เจเจ เจธเฉเจเฉ เจจเฉเฉฐ เจฌเจฆเจฒเฉเจ gh_users ะฒ เจเจฟเจฌเจฒ เจซเจฐเฉเจฎ:
users <- tibble( user = gh_users )
เจเจน เจฅเฉเฉเจพ เจชเฉเจฐเจคเฉเจเฉเจฒ เจเจพเจชเจฆเจพ เจนเฉ: เจเฉฑเจ เจธเฉเจเฉ เจเจฟเจเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเฉ gh_users, เจเฉฑเจ เจนเฉเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจกเจพเจเจพ เจฌเจฃเจคเจฐ เจจเฉเฉฐ? เจชเจฐ เจเฉฑเจ เจกเฉเจเจพ เจซเจฐเฉเจฎ เจฆเจพ เจเฉฑเจ เจตเฉฑเจกเจพ เจซเจพเจเจฆเจพ เจนเฉเฉฐเจฆเจพ เจนเฉ: เจเจน เจเจ เจตเฉเจเจเจฐเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจธเจญ เจเฉเจ เจเฉฑเจ เจตเจธเจคเฉ เจตเจฟเฉฑเจ เจเจฐเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเฉเฅค
เจนเจฐเฉเจ เจตเจธเจคเฉ เจคเฉฑเจค users
เจเฉฑเจ เจจเจพเจฎเจฟเจค เจธเฉเจเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจนเจฐเฉเจ เจคเฉฑเจค เจเฉฑเจ เจเจพเจฒเจฎ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉเฅค
names(users$user[[1]])
#> [1] "login" "id" "avatar_url"
#> [4] "gravatar_id" "url" "html_url"
#> [7] "followers_url" "following_url" "gists_url"
#> [10] "starred_url" "subscriptions_url" "organizations_url"
#> [13] "repos_url" "events_url" "received_events_url"
#> [16] "type" "site_admin" "name"
#> [19] "company" "blog" "location"
#> [22] "email" "hireable" "bio"
#> [25] "public_repos" "public_gists" "followers"
#> [28] "following" "created_at" "updated_at"
เจธเฉเจเฉ เจฆเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเจพเจฒเจฎเจพเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃ เจฆเฉ เจฆเฉ เจคเจฐเฉเจเฉ เจนเจจเฅค unnest_wider()
เจนเจฐเฉเจ เจนเจฟเฉฑเจธเฉ เจจเฉเฉฐ เจฒเฉเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเฉฑเจ เจจเจตเจพเจ เจเจพเจฒเจฎ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ:
users %>% unnest_wider(user)
#> # A tibble: 6 x 30
#> login id avatar_url gravatar_id url html_url followers_url
#> <chr> <int> <chr> <chr> <chr> <chr> <chr>
#> 1 gaboโฆ 6.60e5 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 2 jennโฆ 5.99e5 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 3 jtleโฆ 1.57e6 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 4 juliโฆ 1.25e7 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 5 leepโฆ 3.51e6 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 6 masaโฆ 8.36e6 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> # โฆ with 23 more variables: following_url <chr>, gists_url <chr>,
#> # starred_url <chr>, subscriptions_url <chr>, organizations_url <chr>,
#> # repos_url <chr>, events_url <chr>, received_events_url <chr>,
#> # type <chr>, site_admin <lgl>, name <chr>, company <chr>, blog <chr>,
#> # location <chr>, email <chr>, public_repos <int>, public_gists <int>,
#> # followers <int>, following <int>, created_at <chr>, updated_at <chr>,
#> # bio <chr>, hireable <lgl>
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ 30 เจเจพเจฒเจฎ เจนเจจ, เจ
เจคเฉ เจธเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจชเจตเฉเจเฉ, เจเจธ เจฒเจ เจ
เจธเฉเจ เจเจธเจฆเฉ เจฌเจเจพเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ unnest_wider()
เจตเจฐเจคเฉเจ hoist()
. hoist()
เจธเจพเจจเฉเฉฐ เจเจธเฉ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจฃเฉ เจนเฉเจ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเจเจธเจเจฐเฉเจเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ 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()
เจเฉฑเจ เจเจพเจฒเจฎ เจธเฉเจเฉ เจตเจฟเฉฑเจเฉเจ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจพเจฎ เจตเจพเจฒเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจนเจเจพเจเจเจฆเจพ เจนเฉ เจเจชเจญเฉเจเฉ เจจเฉเฉฐเจเจธ เจฒเจ เจคเฉเจธเฉเจ เจตเจฟเจเจพเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉ hoist()
เจเจฟเจตเฉเจ เจเจฟ เจเจฟเจธเฉ เจฎเจฟเจคเฉ เจซเจฐเฉเจฎ เจฆเฉ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจธเฉเจเฉ เจคเฉเจ เจเจธเจฆเฉ เจธเจฟเจเจฐเจฒเฉ เจชเฉฑเจงเจฐ 'เจคเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจพเจฃเจพเฅค
Github เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ
เจธเฉเจเฉ เจเจเจธเจพเจฐเจคเจพ gh_repos
เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจเจธ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเฉ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจ tibble
:
repos <- tibble(repo = gh_repos)
repos
#> # A tibble: 6 x 1
#> repo
#> <list>
#> 1 <list [30]>
#> 2 <list [30]>
#> 3 <list [30]>
#> 4 <list [26]>
#> 5 <list [30]>
#> 6 <list [30]>
เจเจธ เจตเจพเจฐ เจคเฉฑเจค เจเจชเจญเฉเจเฉ เจจเฉเฉฐ เจเจธ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจฎเจฒเจเฉเจ
เจค เจตเจพเจฒเฉ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจฆเจฐเจธเจพเจเจเจฆเฉ เจนเฉเฅค เจนเจฐเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจจเจฟเจฐเฉเจเจฃ เจนเฉ, เจเจธ เจฒเจ เจธเจพเจซเจผ-เจธเฉเจฅเจฐเฉ เจกเฉเจเจพ เจฆเฉ เจงเจพเจฐเจจเจพ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ (เจฒเจเจญเจ เจธเจพเจซเจผ เจกเจพเจเจพ) เจเจน เจจเจตเฉเจเจ เจฒเจพเจเจจเจพเจ เจฌเจฃ เจเจพเจฃเฉเจเจ เจเจพเจนเฉเจฆเฉเจเจ เจนเจจ, เจเจธ เจฒเจ เจ
เจธเฉเจ เจตเจฐเจคเจฆเฉ เจนเจพเจ unnest_longer()
เจจเจนเฉเจ 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
เจนเฉเจฃ เจ
เจธเฉเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเจพเจ unnest_wider()
เจ 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
เจตเจฐเจคเฉเจ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเจฟเจ c("owner", "login")
: เจเจน เจธเจพเจจเฉเฉฐ เจจเฉเจธเจเจก เจธเฉเจเฉ เจคเฉเจ เจฆเฉเจเฉ เจชเฉฑเจงเจฐ เจฆเจพ เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ owner
. เจเฉฑเจ เจตเจฟเจเจฒเจชเจฟเจ เจชเจนเฉเฉฐเจ เจชเฉเจฐเฉ เจธเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจนเฉ owner
เจ
เจคเฉ เจซเจฟเจฐ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ unnest_wider()
เจเจธเจฆเฉ เจนเจฐเฉเจ เจคเฉฑเจค เจจเฉเฉฐ เจเฉฑเจ เจเจพเจฒเจฎ เจตเจฟเฉฑเจ เจชเจพเจ:
repos %>%
hoist(repo, owner = "owner") %>%
unnest_wider(owner)
#> # A tibble: 176 x 18
#> login id avatar_url gravatar_id url html_url followers_url
#> <chr> <int> <chr> <chr> <chr> <chr> <chr>
#> 1 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 2 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 3 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 4 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 5 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 6 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 7 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 8 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 9 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> 10 gaboโฆ 660288 https://aโฆ "" httpโฆ https:/โฆ https://api.โฆ
#> # โฆ with 166 more rows, and 11 more variables: following_url <chr>,
#> # gists_url <chr>, starred_url <chr>, subscriptions_url <chr>,
#> # organizations_url <chr>, repos_url <chr>, events_url <chr>,
#> # received_events_url <chr>, type <chr>, site_admin <lgl>, repo <list>
เจธเจนเฉ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจฌเจพเจฐเฉ เจธเฉเจเจฃ เจฆเฉ เจฌเจเจพเจ unnest_longer()
เจ unnest_wider()
เจคเฉเจธเฉเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉ unnest_auto()
. เจเจน เจซเฉฐเจเจธเจผเจจ เจกเฉเจเจพ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฒเจ เจธเจญ เจคเฉเจ เจขเฉเจเจตเฉเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจฒเจ เจเจ เจเฉเจเฉ เจคเจฐเฉเจเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเฉเจฃเฉ เจเจ เจขเฉฐเจ เจฌเจพเจฐเฉ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉเฅค
tibble(repo = gh_repos) %>%
unnest_auto(repo) %>%
unnest_auto(repo)
#> Using `unnest_longer(repo)`; no element has names
#> Using `unnest_wider(repo)`; elements have 68 names in common
#> # A tibble: 176 x 67
#> id name full_name owner private html_url description fork url
#> <int> <chr> <chr> <lis> <lgl> <chr> <chr> <lgl> <chr>
#> 1 6.12e7 after gaborcsaโฆ <namโฆ FALSE https:/โฆ Run Code iโฆ FALSE httpโฆ
#> 2 4.05e7 arguโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ Declarativโฆ FALSE httpโฆ
#> 3 3.64e7 ask gaborcsaโฆ <namโฆ FALSE https:/โฆ Friendly Cโฆ FALSE httpโฆ
#> 4 3.49e7 baseโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ Do we get โฆ FALSE httpโฆ
#> 5 6.16e7 citeโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ Test R pacโฆ TRUE httpโฆ
#> 6 3.39e7 clisโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ Unicode syโฆ FALSE httpโฆ
#> 7 3.72e7 cmakโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ port of cmโฆ TRUE httpโฆ
#> 8 6.80e7 cmark gaborcsaโฆ <namโฆ FALSE https:/โฆ CommonMarkโฆ TRUE httpโฆ
#> 9 6.32e7 condโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ <NA> TRUE httpโฆ
#> 10 2.43e7 crayโฆ gaborcsaโฆ <namโฆ FALSE https:/โฆ R package โฆ FALSE httpโฆ
#> # โฆ with 166 more rows, and 58 more variables: forks_url <chr>,
#> # keys_url <chr>, collaborators_url <chr>, teams_url <chr>,
#> # hooks_url <chr>, issue_events_url <chr>, events_url <chr>,
#> # assignees_url <chr>, branches_url <chr>, tags_url <chr>,
#> # blobs_url <chr>, git_tags_url <chr>, git_refs_url <chr>,
#> # trees_url <chr>, statuses_url <chr>, languages_url <chr>,
#> # stargazers_url <chr>, contributors_url <chr>, subscribers_url <chr>,
#> # subscription_url <chr>, commits_url <chr>, git_commits_url <chr>,
#> # comments_url <chr>, issue_comment_url <chr>, contents_url <chr>,
#> # compare_url <chr>, merges_url <chr>, archive_url <chr>,
#> # downloads_url <chr>, issues_url <chr>, pulls_url <chr>,
#> # milestones_url <chr>, notifications_url <chr>, labels_url <chr>,
#> # releases_url <chr>, deployments_url <chr>, created_at <chr>,
#> # updated_at <chr>, pushed_at <chr>, git_url <chr>, ssh_url <chr>,
#> # clone_url <chr>, svn_url <chr>, size <int>, stargazers_count <int>,
#> # watchers_count <int>, language <chr>, has_issues <lgl>,
#> # has_downloads <lgl>, has_wiki <lgl>, has_pages <lgl>,
#> # forks_count <int>, open_issues_count <int>, forks <int>,
#> # open_issues <int>, watchers <int>, default_branch <chr>,
#> # homepage <chr>
เจเฉเจฎ เจเจซเจผ เจฅเฉเจฐเฉเจจเจธ เจฆเฉ เจเจฟเจฐเจฆเจพเจฐ
got_chars
เจฒเจ เจเฉฑเจ เจธเจฎเจพเจจ เจฌเจฃเจคเจฐ เจนเฉ gh_users
: เจเจน เจจเจพเจฎเจฟเจค เจธเฉเจเฉเจเจ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน เจนเฉ, เจเจฟเฉฑเจฅเฉ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจธเฉเจเฉ เจฆเจพ เจนเจฐเฉเจ เจคเฉฑเจค เจเฉเจฎ เจเจซเจผ เจฅเฉเจฐเฉเจจเจธ เจฆเฉ เจ
เฉฑเจเจฐ เจฆเฉ เจเฉเจ เจเฉเจฃเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจฒเจฟเจเจเจฃเจพ got_chars
เจเฉเจฌเจฒ เจตเจฟเจ เจฒเจ, เจ
เจธเฉเจ เจชเจฟเจเจฒเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเจพเจเจ, เจเฉฑเจ เจฎเจฟเจคเฉ เจซเจฐเฉเจฎ เจฌเจฃเจพ เจเฉ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจซเจฟเจฐ เจนเจฐเฉเจ เจคเฉฑเจค เจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเจพเจฒเจฎ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฆเฉ เจนเจพเจ:
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>
เจฌเจฃเจคเจฐ got_chars
เจจเจพเจฒเฉเจ เจเฉเจ เจนเฉเจฐ เจฎเฉเจธเจผเจเจฒ gh_users
, เจเจฟเจเจเจเจฟ เจธเฉเจเฉ เจฆเฉ เจเฉเจ เจญเจพเจ char
เจเจชเจฃเฉ เจเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจเฉ เจนเฉ, เจจเจคเฉเจเฉ เจตเจเฉเจ เจธเจพเจจเฉเฉฐ เจฅเฉฐเจฎเฉเจน - เจธเฉเจเฉเจเจ เจฎเจฟเจฒเจฆเฉเจเจ เจนเจจ:
chars2 %>% select_if(is.list)
#> # A tibble: 30 x 7
#> titles aliases allegiances books povBooks tvSeries playedBy
#> <list> <list> <list> <list> <list> <list> <list>
#> 1 <chr [3]> <chr [4]> <chr [1]> <chr [3]> <chr [2]> <chr [6]> <chr [1]>
#> 2 <chr [2]> <chr [11]> <chr [1]> <chr [2]> <chr [4]> <chr [6]> <chr [1]>
#> 3 <chr [2]> <chr [1]> <chr [1]> <chr [3]> <chr [2]> <chr [1]> <chr [1]>
#> 4 <chr [1]> <chr [1]> <???> <chr [1]> <chr [1]> <chr [1]> <chr [1]>
#> 5 <chr [1]> <chr [1]> <chr [1]> <chr [3]> <chr [2]> <chr [2]> <chr [1]>
#> 6 <chr [1]> <chr [1]> <???> <chr [2]> <chr [1]> <chr [1]> <chr [1]>
#> 7 <chr [1]> <chr [1]> <???> <chr [2]> <chr [1]> <chr [1]> <chr [1]>
#> 8 <chr [1]> <chr [1]> <chr [1]> <chr [4]> <chr [1]> <chr [1]> <chr [1]>
#> 9 <chr [5]> <chr [11]> <chr [1]> <chr [1]> <chr [4]> <chr [6]> <chr [1]>
#> 10 <chr [4]> <chr [5]> <chr [2]> <chr [1]> <chr [3]> <chr [5]> <chr [1]>
#> # โฆ with 20 more rows
เจคเฉเจนเจพเจกเฉเจเจ เจ เจเจฒเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเฉ เจเฉเจเจฟเจเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเฉเจเจ เจนเจจเฅค เจธเจผเจพเจเจฆ เจคเฉเจนเจพเจจเฉเฉฐ เจนเจฐเฉเจ เจเจฟเจคเจพเจฌ เจ เจคเฉ เจฒเฉเฉ เจฒเจ เจฒเจพเจเจจเจพเจ 'เจคเฉ เจเจพเจฃเจเจพเจฐเฉ เจฐเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจชเจพเจคเจฐ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
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
เจเจพเจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจ เฉฑเจเจฐ เจ เจคเฉ เจเฉฐเจฎ เจจเจพเจฒ เจฎเฉเจฒ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
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
(เจเจพเจฒเฉ เจฎเฉเฉฑเจฒ เจจเฉเจ เจเจฐเฉ ""
เจเฉเจคเจฐ เจตเจฟเจ title
, เจเจน เจกเจพเจเจพ เจฆเจพเจเจฒ เจเจฐเจจ เจตเฉเจฒเฉ เจเฉเจคเฉเจเจ เจเจฒเจคเฉเจเจ เจฆเฉ เจเจพเจฐเจจ เจนเฉ got_chars
: เจ
เจธเจฒ เจตเจฟเฉฑเจ, เจเจน เจ
เฉฑเจเจฐ เจเจฟเจจเฉเจนเจพเจ เจฒเจ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเจฟเจคเจพเจฌ เจ
เจคเฉ เจเฉเจตเฉ เจฒเฉเฉเจตเจพเจฐ เจธเจฟเจฐเจฒเฉเจ เจจเจนเฉเจ เจนเจจ title
เจฆเฉ เจฒเฉฐเจฌเจพเจ 0 เจฆเจพ เจตเฉเจเจเจฐ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจจเจพ เจเจฟ เจเจพเจฒเฉ เจธเจคเจฐ เจตเจพเจฒเฉ เจฒเฉฐเจฌเจพเจ 1 เจฆเจพ เจตเฉเจเจเจฐเฅค)
เจ
เจธเฉเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจชเจฐเฉเจเจค เจเจฆเจพเจนเจฐเจฃ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ เจธเจเจฆเฉ เจนเจพเจ unnest_auto()
. เจเจน เจชเจนเฉเฉฐเจ เจเฉฑเจ เจตเจพเจฐ เจฆเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฒเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉ, เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ 'เจคเฉ เจญเจฐเฉเจธเจพ เจจเจนเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ unnest_auto()
เจเฉฑเจ เจจเจฟเจฏเจฎเจค เจเจงเจพเจฐ 'เจคเฉ เจตเจฐเจคเจฃ เจฒเจ. เจฌเจฟเฉฐเจฆเฉ เจเจน เจนเฉ เจเจฟ เจเฉเจเจฐ เจคเฉเจนเจพเจกเจพ เจกเฉเจเจพ เจขเจพเจเจเจพ เจฌเจฆเจฒเจฆเจพ เจนเฉ unnest_auto()
เจเฉเจฃเฉ เจเจ เจกเฉเจเจพ เจชเจฐเจฟเจตเจฐเจคเจจ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฆเจพ เจนเฉ เจเฉเจเจฐ เจเจน เจธเจผเฉเจฐเฉเจเจค เจตเจฟเฉฑเจ เจธเฉเจเฉ เจเจพเจฒเจฎเจพเจ เจจเฉเฉฐ เจเจคเจพเจฐเจพเจ เจตเจฟเฉฑเจ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจฆเจพ เจนเฉ unnest_longer()
, เจซเจฟเจฐ เจเจฆเฉเจ เจเจเจฃ เจตเจพเจฒเฉ เจกเฉเจเจพ เจฆเฉ เจฌเจฃเจคเจฐ เจฌเจฆเจฒ เจเจพเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเจฐเจ เจจเฉเฉฐ เจชเฉฑเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ unnest_wider()
, เจ
เจคเฉ เจจเจฟเจฐเฉฐเจคเจฐ เจ
เจงเจพเจฐ 'เจคเฉ เจเจธ เจชเจนเฉเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจจเจพเจฒ เจ
เจเจพเจจเจ เจเจฒเจคเฉเจเจ เจนเฉ เจธเจเจฆเฉเจเจ เจนเจจเฅค
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
เจเฉเจเจฒ เจฆเฉ เจจเจพเจฒ เจเฉเจเจเฉเจกเจฟเฉฐเจ
เจ เฉฑเจเฉ, เจ เจธเฉเจ เจเฉเจเจฒ เจฆเฉ เจเฉเจเจเฉเจกเจฟเฉฐเจ เจธเฉเจตเจพ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจกเฉเจเจพ เจฆเฉ เจเฉฑเจ เจนเฉเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจขเจพเจเจเฉ เจจเฉเฉฐ เจฆเฉเจเจพเจเจเฉเฅค เจเฉเจเจฟเฉฐเจ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ Google เจจเจเจธเจผเฉ API เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจตเจฟเจฐเฉเฉฑเจง เจนเฉ, เจเจธ เจฒเจ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ API เจฆเฉ เจเจฒเฉ เจฆเฉเจเจฒเฉ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฐเฉเจชเจฐ เจฒเจฟเจเจพเจเจเจพ. เจเฉ เจเจฟ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจฟเฉฑเจ เจเฉเจเจฒ เจฎเฉเจชเจธ API เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ 'เจคเฉ เจ เจงเจพเจฐเจค เจนเฉ; เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจคเฉเจนเจพเจกเฉ เจตเจพเจคเจพเจตเจฐเจจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเฉ Google Maps API เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉเฉฐเจเฉ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจธ เจญเจพเจ เจตเจฟเฉฑเจ เจชเฉเจธเจผ เจเฉเจคเฉ เจเฉเจก เจฆเฉ เจเฉเจเฉเฉ เจฒเจพเจเฉ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจฃเจเฉเฅค
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)
}
เจเจน เจซเฉฐเจเจธเจผเจจ เจเฉ เจธเฉเจเฉ เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเจน เจเจพเจซเจผเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉ:
houston <- geocode("Houston TX")
str(houston)
#> List of 2
#> $ results:List of 1
#> ..$ :List of 5
#> .. ..$ address_components:List of 4
#> .. .. ..$ :List of 3
#> .. .. .. ..$ long_name : chr "Houston"
#> .. .. .. ..$ short_name: chr "Houston"
#> .. .. .. ..$ types :List of 2
#> .. .. .. .. ..$ : chr "locality"
#> .. .. .. .. ..$ : chr "political"
#> .. .. ..$ :List of 3
#> .. .. .. ..$ long_name : chr "Harris County"
#> .. .. .. ..$ short_name: chr "Harris County"
#> .. .. .. ..$ types :List of 2
#> .. .. .. .. ..$ : chr "administrative_area_level_2"
#> .. .. .. .. ..$ : chr "political"
#> .. .. ..$ :List of 3
#> .. .. .. ..$ long_name : chr "Texas"
#> .. .. .. ..$ short_name: chr "TX"
#> .. .. .. ..$ 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 "Houston, TX, USA"
#> .. ..$ geometry :List of 4
#> .. .. ..$ bounds :List of 2
#> .. .. .. ..$ northeast:List of 2
#> .. .. .. .. ..$ lat: num 30.1
#> .. .. .. .. ..$ lng: num -95
#> .. .. .. ..$ southwest:List of 2
#> .. .. .. .. ..$ lat: num 29.5
#> .. .. .. .. ..$ lng: num -95.8
#> .. .. ..$ location :List of 2
#> .. .. .. ..$ lat: num 29.8
#> .. .. .. ..$ lng: num -95.4
#> .. .. ..$ location_type: chr "APPROXIMATE"
#> .. .. ..$ viewport :List of 2
#> .. .. .. ..$ northeast:List of 2
#> .. .. .. .. ..$ lat: num 30.1
#> .. .. .. .. ..$ lng: num -95
#> .. .. .. ..$ southwest:List of 2
#> .. .. .. .. ..$ lat: num 29.5
#> .. .. .. .. ..$ lng: num -95.8
#> .. ..$ place_id : chr "ChIJAYWNSLS4QIYROwVl894CDco"
#> .. ..$ types :List of 2
#> .. .. ..$ : chr "locality"
#> .. .. ..$ : chr "political"
#> $ status : chr "OK"
เจเฉเจธเจผเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจ
เจธเฉเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจธ เจกเฉเจเจพ เจจเฉเฉฐ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ tidyr
. เจเฉฐเจฎ เจจเฉเฉฐ เจฅเฉเฉเจพ เจนเฉเจฐ เจเฉเจฃเฉเจคเฉเจชเฉเจฐเจจ เจ
เจคเฉ เจฏเจฅเจพเจฐเจฅเจตเจพเจฆเฉ เจฌเจฃเจพเจเจฃ เจฒเจ, เจฎเฉเจ เจเฉเจ เจธเจผเจนเจฟเจฐเจพเจ เจจเฉเฉฐ เจเฉเจเจเฉเจกเจฟเฉฐเจ เจเจฐเจเฉ เจธเจผเฉเจฐเฉ เจเจฐเจพเจเจเจพ:
city <- c ( "Houston" , "LA" , "New York" , "Chicago" , "Springfield" ) city_geo <- purrr::map (city, geocode)
เจฎเฉเจ เจจเจคเฉเจเฉ เจฆเฉ เจจเจคเฉเจเฉ เจจเฉเฉฐ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจพเจเจเจพ tibble
, เจธเจนเฉเจฒเจค เจฒเจ, เจฎเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจธเจผเจนเจฟเจฐ เจฆเฉ เจจเจพเจฎ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจพเจฒเจฎ เจเฉเฉเจพเจเจเจพเฅค
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]>
เจชเจนเจฟเจฒเฉ เจชเฉฑเจงเจฐ เจตเจฟเฉฑเจ เจญเจพเจ เจธเจผเจพเจฎเจฒ เจนเจจ status
ะธ result
, เจเจฟเจธ เจจเจพเจฒ เจ
เจธเฉเจ เจตเจฟเจธเจคเจพเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ 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
เจจเฉเจ เจเจฐเฉ results
เจเฉฑเจ เจฌเจนเฉ-เจชเฉฑเจงเจฐเฉ เจธเฉเจเฉ เจนเฉเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเจผเจนเจฟเจฐเจพเจ เจตเจฟเฉฑเจ 1 เจคเฉฑเจค เจนเฉเฉฐเจฆเจพ เจนเฉ (เจเฉเจเจเฉเจกเจฟเฉฐเจ API เจฆเฉ เจ
เจจเฉเจธเจพเจฐเฉ เจเฉฑเจ เจตเจฟเจฒเฉฑเจเจฃ เจฎเฉเฉฑเจฒ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ), เจชเจฐ เจธเจชเจฐเจฟเฉฐเจเจซเฉเจฒเจก เจตเจฟเฉฑเจ เจฆเฉ เจนเจจเฅค เจ
เจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจฒเจพเจเจจเจพเจ เจตเจฟเฉฑเจ เจเจฟเฉฑเจ เจธเจเจฆเฉ เจนเจพเจ 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
เจนเฉเจฃ เจเจนเจจเจพเจ เจธเจพเจฐเจฟเจเจ เจเฉเจฒ เจเฉฑเจเฉ เจเจฟเจนเฉ เจนเจฟเฉฑเจธเฉ เจนเจจ, เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเฉเจธเจผเจเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ 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
เจ
เจธเฉเจ เจธเฉเจเฉ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจเฉ เจนเจฐเฉเจ เจธเจผเจนเจฟเจฐ เจฆเฉ เจ
เจเจธเจผเจพเจเจธเจผ เจ
เจคเฉ เจฒเฉฐเจฌเจเจพเจฐ เจเฉเจเจฐเจกเฉเจจเฉเจ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเจพเจ 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>
เจ
เจคเฉ เจซเจฟเจฐ เจเจน เจธเจฅเจพเจจ เจเจฟเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจตเจฟเจธเจคเจพเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ 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>
เจซเจฟเจฐ เจตเฉ, unnest_auto()
เจตเจฐเจฃเจฟเจค เจเจพเจฐเจตเจพเจ เจจเฉเฉฐ เจเฉเจ เจเฉเจเจฎเจพเจ เจฆเฉ เจจเจพเจฒ เจธเจฐเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ เจเฉ เจเจเจฃ เจตเจพเจฒเฉ เจกเฉเจเจพ เจฆเฉ เจฌเจฃเจคเจฐ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเจพเจฐเจจ เจนเฉ เจธเจเจฆเฉ เจนเจจ:
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>
เจ เจธเฉเจ เจนเจฐ เจธเจผเจนเจฟเจฐ เจฆเฉ เจชเจนเจฟเจฒเฉ เจชเจคเฉ เจจเฉเฉฐ เจตเฉ เจฆเฉเจ เจธเจเจฆเฉ เจนเจพเจ:
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>
เจเจพเจ เจตเจฐเจคเฉ hoist()
เจธเจฟเฉฑเจงเฉ เจเจพเจฃ เจฒเจ เจฌเจนเฉ-เจชเฉฑเจงเจฐเฉ เจกเจพเจเจต เจฒเจ 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]>
เจธเจผเจพเจฐเจฒเจพ เจเฉเจฒเจซเฉเจเจก เจฆเฉ เจกเจฟเจธเจเฉเจเฉเจฐเจพเจซเฉ
เจ
เฉฐเจค เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจธเจญ เจคเฉเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจขเจพเจเจเฉ เจจเฉเฉฐ เจฆเฉเจเจพเจเจเฉ - เจธเจผเจพเจฐเจฒเจพ เจเฉเจฒเจซเฉเจเจก เจฆเฉ เจกเจฟเจธเจเฉเจเฉเจฐเจพเจซเฉ. เจเจฟเจตเฉเจ เจเจฟ เจเจชเจฐเฉเจเจค เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจธเฉเจเฉ เจจเฉเฉฐ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ-เจเจพเจฒเจฎ เจกเฉเจเจพ เจซเจฐเฉเจฎ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเฉ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจซเจฟเจฐ เจเจธเจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจตเจงเจพ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจนเจฐเฉเจ เจญเจพเจ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจเจพเจฒเจฎ เจนเฉเจตเฉเฅค เจจเจพเจฒ เจนเฉ เจฎเฉเจ เจเจพเจฒเจฎ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเจพ เจนเจพเจ date_added
เจเจฐ เจตเจฟเฉฑเจ เจเจเจฟเจค เจฎเจฟเจคเฉ เจ
เจคเฉ เจธเจฎเฉเจ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ.
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
เจเจธ เจชเฉฑเจงเจฐ 'เจคเฉ, เจธเจพเจจเฉเฉฐ เจเจธ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจฎเจฟเจฒเจฆเฉ เจนเฉ เจเจฟ เจนเจฐ เจเฉฑเจ เจกเจฟเจธเจ เจจเฉเฉฐ เจธเจผเจพเจฐเจฒเจพ เจฆเฉ เจกเจฟเจธเจเฉเจเฉเจฐเจพเจซเฉ เจตเจฟเฉฑเจ เจเจฆเฉเจ เจเฉเฉเจฟเจ เจเจฟเจ เจธเฉ, เจชเจฐ เจ
เจธเฉเจ เจเจนเจจเจพเจ เจกเจฟเจธเจเจพเจ เจฌเจพเจฐเฉ เจเฉเจ เจกเจพเจเจพ เจจเจนเฉเจ เจฆเฉเจเจฆเฉเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเจพเจฒเจฎ เจจเฉเฉฐ เจซเฉเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ basic_information
:
discs %>% unnest_wider(basic_information)
#> Column name `id` must not be duplicated.
#> Use .name_repair to specify repair.
เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจคเจฐเฉเฉฑเจเฉ เจชเฉเจฐเจพเจชเจค เจนเฉเจตเฉเจเฉ, เจเจฟเจเจเจเจฟ... เจธเฉเจเฉ เจฆเฉ เจ
เฉฐเจฆเจฐ basic_information
เจเจธเฉ เจจเจพเจฎ เจฆเจพ เจเฉฑเจ เจเจพเจฒเจฎ เจนเฉ basic_information
. เจเฉ เจ
เจเจฟเจนเฉ เจเจฒเจคเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเจธเจฆเฉ เจเจพเจฐเจจ เจจเฉเฉฐ เจเจฒเจฆเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ names_repair = "unique"
:
discs %>% unnest_wider(basic_information, names_repair = "unique")
#> New names:
#> * id -> id...6
#> * id -> id...14
#> # A tibble: 155 x 15
#> instance_id date_added labels year artists id...6 thumb title
#> <int> <dttm> <list> <int> <list> <int> <chr> <chr>
#> 1 354823933 2019-02-16 17:48:59 <listโฆ 2015 <list โฆ 7.50e6 httpโฆ Demo
#> 2 354092601 2019-02-13 14:13:11 <listโฆ 2013 <list โฆ 4.49e6 httpโฆ Obseโฆ
#> 3 354091476 2019-02-13 14:07:23 <listโฆ 2017 <list โฆ 9.83e6 httpโฆ I
#> 4 351244906 2019-02-02 11:39:58 <listโฆ 2017 <list โฆ 9.77e6 httpโฆ Oรญdoโฆ
#> 5 351244801 2019-02-02 11:39:37 <listโฆ 2015 <list โฆ 7.24e6 httpโฆ A Caโฆ
#> 6 351052065 2019-02-01 20:40:53 <listโฆ 2019 <list โฆ 1.31e7 httpโฆ Tashโฆ
#> 7 350315345 2019-01-29 15:48:37 <listโฆ 2014 <list โฆ 7.11e6 httpโฆ Demo
#> 8 350315103 2019-01-29 15:47:22 <listโฆ 2015 <list โฆ 1.05e7 httpโฆ Let โฆ
#> 9 350314507 2019-01-29 15:44:08 <listโฆ 2017 <list โฆ 1.13e7 "" Sub โฆ
#> 10 350314047 2019-01-29 15:41:35 <listโฆ 2017 <list โฆ 1.17e7 httpโฆ Demo
#> # โฆ with 145 more rows, and 7 more variables: formats <list>,
#> # cover_image <chr>, resource_url <chr>, master_id <int>,
#> # master_url <chr>, id...14 <int>, rating <int>
เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ basic_information
เจเจเจกเฉ เจเจพเจฒเจฎ เจจเฉเฉฐ เจฆเฉเจนเจฐเจพเจเจเจฆเจพ เจนเฉ เจเฉ เจเจฟ เจธเจฟเจเจฐเจฒเฉ เจชเฉฑเจงเจฐ 'เจคเฉ เจตเฉ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจธ เจฒเจ เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจฌเจธ เจนเจเจพ เจธเจเจฆเฉ เจนเจพเจ:
discs %>%
select(-id) %>%
unnest_wider(basic_information)
#> # A tibble: 155 x 14
#> instance_id date_added labels year artists id thumb title
#> <int> <dttm> <list> <int> <list> <int> <chr> <chr>
#> 1 354823933 2019-02-16 17:48:59 <listโฆ 2015 <list โฆ 7.50e6 httpโฆ Demo
#> 2 354092601 2019-02-13 14:13:11 <listโฆ 2013 <list โฆ 4.49e6 httpโฆ Obseโฆ
#> 3 354091476 2019-02-13 14:07:23 <listโฆ 2017 <list โฆ 9.83e6 httpโฆ I
#> 4 351244906 2019-02-02 11:39:58 <listโฆ 2017 <list โฆ 9.77e6 httpโฆ Oรญdoโฆ
#> 5 351244801 2019-02-02 11:39:37 <listโฆ 2015 <list โฆ 7.24e6 httpโฆ A Caโฆ
#> 6 351052065 2019-02-01 20:40:53 <listโฆ 2019 <list โฆ 1.31e7 httpโฆ Tashโฆ
#> 7 350315345 2019-01-29 15:48:37 <listโฆ 2014 <list โฆ 7.11e6 httpโฆ Demo
#> 8 350315103 2019-01-29 15:47:22 <listโฆ 2015 <list โฆ 1.05e7 httpโฆ Let โฆ
#> 9 350314507 2019-01-29 15:44:08 <listโฆ 2017 <list โฆ 1.13e7 "" Sub โฆ
#> 10 350314047 2019-01-29 15:41:35 <listโฆ 2017 <list โฆ 1.17e7 httpโฆ Demo
#> # โฆ with 145 more rows, and 6 more variables: formats <list>,
#> # cover_image <chr>, resource_url <chr>, master_id <int>,
#> # master_url <chr>, rating <int>
เจตเจฟเจเจฒเจชเจ เจคเฉเจฐ 'เจคเฉ, เจ
เจธเฉเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเจพเจ hoist()
:
discs %>%
hoist(basic_information,
title = "title",
year = "year",
label = list("labels", 1, "name"),
artist = list("artists", 1, "name")
)
#> # A tibble: 155 x 9
#> instance_id date_added title year label artist
#> <int> <dttm> <chr> <int> <chr> <chr>
#> 1 354823933 2019-02-16 17:48:59 Demo 2015 Tobiโฆ Mollot
#> 2 354092601 2019-02-13 14:13:11 Obseโฆ 2013 La Vโฆ Una Bโฆ
#> 3 354091476 2019-02-13 14:07:23 I 2017 La Vโฆ S.H.Iโฆ
#> 4 351244906 2019-02-02 11:39:58 Oรญdoโฆ 2017 La Vโฆ Rata โฆ
#> 5 351244801 2019-02-02 11:39:37 A Caโฆ 2015 Katoโฆ Ivy (โฆ
#> 6 351052065 2019-02-01 20:40:53 Tashโฆ 2019 Highโฆ Tashme
#> 7 350315345 2019-01-29 15:48:37 Demo 2014 Mindโฆ Desgrโฆ
#> 8 350315103 2019-01-29 15:47:22 Let โฆ 2015 Not โฆ Phantโฆ
#> 9 350314507 2019-01-29 15:44:08 Sub โฆ 2017 Not โฆ Sub Sโฆ
#> 10 350314047 2019-01-29 15:41:35 Demo 2017 Presโฆ Smallโฆ
#> # โฆ with 145 more rows, and 3 more variables: basic_information <list>,
#> # id <int>, rating <int>
เจเฉฑเจฅเฉ เจฎเฉเจ เจจเฉเจธเจเจก เจธเฉเจเฉ เจตเจฟเฉฑเจ เจเฉเจคเจพเจเฉเจฐเฉ เจเจฐเจเฉ เจธเฉเจเจเจพเจเจ เจฆเฉเจเจฐเจพ เจชเจนเจฟเจฒเฉ เจฒเฉเจฌเจฒ เจ เจคเฉ เจเจฒเจพเจเจพเจฐ เจฆเฉ เจจเจพเจฎ เจจเฉเฉฐ เจเจฒเจฆเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเจพ เจนเจพเจเฅค
เจเจฒเจพเจเจพเจฐ เจ เจคเฉ เจฒเฉเจฌเจฒ เจฒเจ เจตเฉฑเจเจฐเฉเจเจ เจเฉเจฌเจฒ เจฌเจฃเจพเจเจฃเจพ เจเฉฑเจ เจนเฉเจฐ เจตเจฟเจตเจธเจฅเจฟเจค เจชเจนเฉเฉฐเจ เจนเฉ:
discs %>%
hoist(basic_information, artist = "artists") %>%
select(disc_id = id, artist) %>%
unnest_longer(artist) %>%
unnest_wider(artist)
#> # A tibble: 167 x 8
#> disc_id join name anv tracks role resource_url id
#> <int> <chr> <chr> <chr> <chr> <chr> <chr> <int>
#> 1 7496378 "" Mollot "" "" "" https://api.discogโฆ 4.62e6
#> 2 4490852 "" Una Bรจstiaโฆ "" "" "" https://api.discogโฆ 3.19e6
#> 3 9827276 "" S.H.I.T. (โฆ "" "" "" https://api.discogโฆ 2.77e6
#> 4 9769203 "" Rata Negra "" "" "" https://api.discogโฆ 4.28e6
#> 5 7237138 "" Ivy (18) "" "" "" https://api.discogโฆ 3.60e6
#> 6 13117042 "" Tashme "" "" "" https://api.discogโฆ 5.21e6
#> 7 7113575 "" Desgraciadโฆ "" "" "" https://api.discogโฆ 4.45e6
#> 8 10540713 "" Phantom Heโฆ "" "" "" https://api.discogโฆ 4.27e6
#> 9 11260950 "" Sub Space โฆ "" "" "" https://api.discogโฆ 5.69e6
#> 10 11726853 "" Small Man โฆ "" "" "" https://api.discogโฆ 6.37e6
#> # โฆ with 157 more rows
discs %>%
hoist(basic_information, format = "formats") %>%
select(disc_id = id, format) %>%
unnest_longer(format) %>%
unnest_wider(format) %>%
unnest_longer(descriptions)
#> # A tibble: 280 x 5
#> disc_id descriptions text name qty
#> <int> <chr> <chr> <chr> <chr>
#> 1 7496378 Numbered Black Cassette 1
#> 2 4490852 LP <NA> Vinyl 1
#> 3 9827276 "7"" <NA> Vinyl 1
#> 4 9827276 45 RPM <NA> Vinyl 1
#> 5 9827276 EP <NA> Vinyl 1
#> 6 9769203 LP <NA> Vinyl 1
#> 7 9769203 Album <NA> Vinyl 1
#> 8 7237138 "7"" <NA> Vinyl 1
#> 9 7237138 45 RPM <NA> Vinyl 1
#> 10 13117042 "7"" <NA> Vinyl 1
#> # โฆ with 270 more rows
เจซเจฟเจฐ เจคเฉเจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเฉเฉ เจ เจจเฉเจธเจพเจฐ เจฎเฉเจฒ เจกเฉเจเจพเจธเฉเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจธเจฟเฉฑเจเจพ
เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจฎเฉเจฒ เจคเฉฑเจ tidyverse
เจเฉฑเจ เจธเจพเจเจเฉ เจกเฉเจเจพ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจฆเจฐเจธเจผเจจ เจฆเฉเจเจฐเจพ เจเฉฑเจเจเฉเฉฑเจ เจเจ เจเจชเจฏเฉเจเฉ เจชเฉเจเฉเจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจชเจฐเจฟเจตเจพเจฐ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ unnest_*()
, เจเจฟเจธเจฆเจพ เจเจฆเฉเจธเจผ เจจเฉเจธเจเจก เจธเฉเจเฉเจเจ เจคเฉเจ เจคเฉฑเจค เจเฉฑเจขเจฃ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจนเฉเฅค เจเจธ เจชเฉเจเฉเจ เจตเจฟเฉฑเจ เจเจ เจนเฉเจฐ เจเจชเจฏเฉเจเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจนเจจ เจเฉ เจธเฉฐเจเจฒเจช เจฆเฉ เจ
เจจเฉเจธเจพเจฐ เจกเฉเจเจพ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจ เจธเฉเจฅเจฐเจพ เจกเจพเจเจพ.
เจธเจฐเฉเจค: www.habr.com