āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ API āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻŦāĻž āĻāĻāĻŋāĻ˛ āĻāĻžāĻā§āĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŽāĻ¨ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ JSON āĻāĻŦāĻ XML āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¨āĨ¤
āĻāĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§: āĻāĻā§āĻ˛āĻŋ āĻŦā§āĻļ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻāĻ˛ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻžāĨ¤ āĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻĄā§āĻāĻž āĻāĻŖāĻ¨āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ āĻāĻ° āĻāĻĒāĻ° āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻļāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž tidyr
, āĻā§āĻ°āĻ¨ā§āĻĨāĻžāĻāĻžāĻ°ā§āĻ° āĻŽā§āĻ˛ āĻ
āĻāĻļā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ tidyverse
, āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻžāĻ° unnest_*()
.
āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĄā§āĻāĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻŽāĻŋāĻāĻž GitHub āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž Github āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻā§āĻŽ āĻ āĻĢ āĻĨā§āĻ°ā§āĻ¨āĻ¸ āĻāĻ°āĻŋāĻ¤ā§āĻ° āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻāĻā§āĻĄāĻŋāĻ āĻļāĻžāĻ°ā§āĻ˛āĻž āĻā§āĻ˛āĻĢāĻžāĻ¨ā§āĻĄā§āĻ° āĻĄāĻŋāĻ¸āĻā§āĻā§āĻ°āĻžāĻĢāĻŋ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻā§āĻŽāĻŋāĻāĻž
āĻāĻ¯āĻŧāĻ¤āĻā§āĻˇā§āĻ¤ā§āĻ° (āĻ
āĻ¨ā§āĻŦāĻžāĻĻāĻā§āĻ° āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯, āĻāĻŽāĻŋ āĻāĻ āĻļāĻŦā§āĻĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻ
āĻ¨ā§āĻŦāĻžāĻĻā§āĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻ°ā§āĻā§ āĻĻā§āĻŦāĨ¤) āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¸āĻžāĻ°āĻŋ āĻāĻŦāĻ āĻāĻ˛āĻžāĻŽ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋ-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ
ā§āĻ¯āĻžāĻ°ā§ āĻ¸āĻš āĻ
āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻĄā§āĻāĻž āĻāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ āĻāĻŋāĻ¤āĻ°ā§ 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_āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻžāĻ¤ā§ āĻāĻ¯āĻŧāĻāĻŋ āĻāĻŋāĻāĻšāĻžāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¤āĻĨā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ gh_āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ в āĻāĻŋāĻŦāĻ˛ āĻĢā§āĻ°ā§āĻŽ:
users <- tibble( user = gh_users )
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ: āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻ¨ gh_āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻāĻ°ā§ āĻāĻāĻŋāĻ˛ āĻ¤āĻĨā§āĻ¯ āĻāĻžāĻ āĻžāĻŽā§? āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻĢā§āĻ°ā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§: āĻāĻāĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻā§āĻā§āĻāĻ°āĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ 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 āĻāĻ° āĻāĻŋāĻāĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻāĻžāĻ āĻžāĻŽā§ āĻĻā§āĻāĻŦāĨ¤ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ Google āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° API āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽā§āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ API āĻāĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽā§āĻĄāĻŧāĻ āĻ˛āĻŋāĻāĻŦāĨ¤ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŽāĻ§ā§āĻ¯ā§ Google āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° 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
āĻāĻāĻĄāĻŋ āĻāĻ˛āĻžāĻŽā§āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°ā§āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻ¸āĻ°āĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
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