เชฎเซเชเชพเชญเชพเชเชจเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชเซเชฏเชพเชฐเซ API เชคเชฐเชซเชฅเซ เชฎเชณเซเชฒเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชธเชพเชฅเซ เช เชฅเชตเชพ เชเชเชฟเชฒ เชตเซเชเซเชท เชฎเชพเชณเชเซเช เชงเชฐเชพเชตเชคเชพ เช เชจเซเชฏ เชเซเชเชชเชฃ เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ JSON เช เชจเซ XML เชซเซเชฐเซเชฎเซเชเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซ เชเซ.
เช เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเชฃเชพ เชซเชพเชฏเชฆเชพ เชเซ: เชคเซเช เชกเซเชเชพเชจเซ เชเชเชฆเชฎ เชธเชเชจ เชฐเซเชคเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ เช เชจเซ เชคเชฎเชจเซ เชฎเชพเชนเชฟเชคเซเชจเชพ เชฌเชฟเชจเชเชฐเซเชฐเซ เชกเซเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเชพเชณเชตเชพ เชฆเซ เชเซ.
เช เชซเซเชฐเซเชฎเซเชเชจเซ เชเซเชฐเชฒเชพเชญ เช เชคเซเชฎเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เช เชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃเชจเซ เชเชเชฟเชฒเชคเชพ เชเซ. เช เชจเชธเซเชเซเชฐเชเซเชเชฐเซเชก เชกเซเชเชพเชจเซ เชเชชเชฏเซเช เชเชฃเชคเชฐเซเชฎเชพเช เชเชฐเซ เชถเชเชพเชคเซ เชจเชฅเซ เช เชจเซ เชคเซเชจเชพ เชชเชฐ เชตเชฟเชเซเชฏเซเชฒเชพเชเชเซเชถเชจ เชฌเชจเชพเชตเซ เชถเชเชพเชคเซเช เชจเชฅเซ.
เช เชฒเซเช เชชเซเชฐเชเชพเชถเชจเชจเซเช เชคเชพเชฐเซเชเชฟเช เชเชพเชฒเซ เชเซ tidyr
, เชชเซเชธเซเชคเชเชพเชฒเชฏเชจเชพ เชฎเซเชเซเชฏ เชญเชพเชเชฎเชพเช เชธเชฎเชพเชตเชฟเชทเซเช เชเซ tidyverse
, เช
เชจเซ เชคเซเชจเชพ เชเชพเชฐเซเชฏเซเชจเซ เชชเชฐเชฟเชตเชพเชฐ unnest_*()
.
เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ
เชเซ เชคเชฎเชจเซ เชกเซเชเชพ เชตเชฟเชถเซเชฒเซเชทเชฃเชฎเชพเช เชฐเชธ เชนเซเชฏ, เชคเซ เชคเชฎเชจเซ เชฎเชพเชฐเชพเชฎเชพเช เชฐเชธ เชนเซเช เชถเชเซ เชเซ
เชชเชฐเชฟเชเชฏ GitHub เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชเซเชฅเชฌ เชฐเซเชชเซเชเซเชเชฐเซเช เชเซเชฎ เชเชซ เชฅเซเชฐเซเชจเซเชธเชจเชพ เชชเชพเชคเซเชฐเซ Google เชธเชพเชฅเซ เชเซเชเชเซเชกเชฟเชเช เชถเชพเชฐเซเชฒเชพ เชเซเชฒเชซเซเชจเซเชกเชจเซ เชกเชฟเชธเซเชเซเชเซเชฐเชพเชซเซ เชจเชฟเชทเซเชเชฐเซเชท
เชชเชฐเชฟเชเชฏ
เชฒเชเชฌเชเซเชฐเชธ (เช
เชจเซเชตเชพเชฆเชเชจเซ เชจเซเชเชง, เชฎเชจเซ เช เชถเชฌเซเชฆ เชฎเชพเชเซ เชชเชฐเซเชฏเชพเชชเซเชค เช
เชจเซเชตเชพเชฆ เชตเชฟเชเชฒเซเชชเซ เชฎเชณเซเชฏเชพ เชจเชฅเซ, เชคเซเชฅเซ เช
เชฎเซ เชคเซเชจเซ เชเซเชฎ เชเซ เชคเซเชฎ เชเซเชกเซเชถเซเช.) เชชเชฐเชฟเชเชฟเชค เชชเชเชเซเชคเชฟเช เช
เชจเซ เชเซเชฒเชฎเซเชธ เชงเชฐเชพเชตเชคเชพ เชฆเซเชตเชฟ-เชชเชฐเชฟเชฎเชพเชฃเซเชฏ เชเซเชทเซเชเชเชฎเชพเช เชจเซเชธเซเชเซเชก เชเชฐเซ เชธเชพเชฅเซ เช
เชจเชธเซเชเซเชฐเชเซเชเชฐเซเชก เชกเซเชเชพ เชฒเชพเชตเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซ. 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()
เชเซเชฎ เชเซ เชเชเชเซเชจเซ เชคเชพเชฐเซเช เชซเซเชฐเซเชฎเชจเซ เชเชเชคเชฐเชฟเช เชธเซเชเชฟเชฎเชพเชเชฅเซ เชคเซเชจเชพ เชเซเชเชจเชพ เชธเซเชคเชฐ เชชเชฐ เชเชธเซเชกเชตเชพ.
เชเซเชฅเชฌ เชฐเซเชชเซเชเซเชเชฐเซเช
เชธเซเชเชฟ เชธเชเชฐเซเชเชฃ 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 เชธเชพเชฅเซ เชเซเชเชเซเชกเชฟเชเช
เชเชเชณ, เช เชฎเซ Google เชจเซ เชเซเชเชเซเชกเชฟเชเช เชธเซเชตเชพเชฎเชพเชเชฅเซ เชฎเซเชณเชตเซเชฒเชพ เชกเซเชเชพเชจเซ เชตเชงเซ เชเชเชฟเชฒ เชฐเชเชจเชพ เชเซเชเชถเซเช. เชเซเชถเซเชเช เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ Google เชจเชเชถเชพ API เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเชพ เชจเชฟเชฏเชฎเซเชจเซ เชตเชฟเชฐเซเชฆเซเชง เชเซ, เชคเซเชฅเซ เชนเซเช เชชเชนเซเชฒเชพ API เชจเซ เชเชธเชชเชพเชธ เชเช เชธเชฐเชณ เชฐเซเชชเชฐ เชฒเชเซเชถ. เชเซ Google Maps 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
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
เช เชธเซเชคเชฐเซ, เช
เชฎเซ เชถเชพเชฐเซเชฒเชพเชจเซ เชกเชฟเชธเซเชเซเชเซเชฐเชพเชซเซเชฎเชพเช เชฆเชฐเซเช เชกเชฟเชธเซเช เชเซเชฏเชพเชฐเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ เชคเซ เชตเชฟเชถเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซเช เชเซเช, เชชเชฐเชเชคเซ เช
เชฎเชจเซ เชคเซ เชกเชฟเชธเซเช เชตเชฟเชถเซ เชเซเช เชกเซเชเชพ เชฆเซเชเชพเชคเซ เชจเชฅเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชเซเชฒเชฎเชจเซ เชตเชฟเชธเซเชคเซเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ 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
id เชเซเชฒเชฎเชจเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเซ เชเซ เชเซ เชเซเชเชจเชพ เชธเซเชคเชฐ เชชเชฐ เชชเชฃ เชธเชเชเซเชฐเชนเชฟเชค เชเซ, เชเซเชฅเซ เช
เชฎเซ เชคเซเชจเซ เชเชพเชฒเซ เชฆเซเชฐ เชเชฐเซ เชถเชเซเช:
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