แแแแแขแ แแแฌแแกแ แแแแแฃแแ แจแแแแก R แแแแจแ แแ แ-แแ แแ แงแแแแแแ แแแแฃแแแ แฃแแ แแแแแแแแแแแก แแแ แแแจแ - แแแฌแแกแ แแแแแฃแแ.
แแแแแขแแก แแแแแแ แ แแแแแแแ แแแแแชแแแแแแก แแฃแกแข แคแแ แแแจแ แแแงแแแแ.
แฃแแแ แฎแแแแแกแแฌแแแแแแ Habrรฉ-แแ
แกแฏ.แ.: แแแซแแแแแแแ collect() แแ spread()?
แฐแแแแ แแแแฐแแแ: แฒแแ แแแแฃแแฌแแแแ. แฉแแแ แแฆแแ แแแ แฉแแแ แแ แคแฃแแฅแชแแแแแก แแแแแงแแแแแแก แแ แแแแจแ แแ แกแแแฃแแ แจแแชแแแแแแแก แแแแแกแฌแแ แแแแก, แแแแ แแ แแกแแแ แแแแแ แซแแแแแแ แแแแแขแจแ แงแแคแแแก แแแแแแแแแแ แแแแแแแ แแแแแจแ.
แแแคแแ แแแชแแแก
แแฃ แแแแแขแแ แแกแแแ แแแแแชแแแแ แแแแแแแ, แจแแแซแแแแ แแแแแแแขแแ แแกแแ แฉแแแ
TidyData แแแแชแแคแชแแ แซแแ แแแแแ แคแฃแแฅแชแแแแ แจแแแแก tidyr แแแแแขแจแ แแฎแแแ แแแแชแแคแชแแ แแแแแชแแแแ แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ แแแแแแ แขแแชแแแกแแแแก แแ แแแ แแฅแแ tidyr 0.8.3.9000-แแก แฃแแฎแแแกแ แแแ แกแแแก แแแกแขแแแแชแแ แแฎแแ แคแฃแแฅแชแแแแแ แแแแแกแแแ แแแแแชแแแแ แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ แแแแแงแแแแแก แแแ แขแแแ แแแแแแแแ แกแแแชแแคแแแแชแแแแ แกแแแชแแคแแแแชแแ แแ แแแแแ แแแแจแแแแแแแแก แแแแแงแแแแแแ (.value) แแแ แแฆแแก แฉแแ แฉแแแแแก แแแแแแ แขแแชแแ แแ แซแแแ แคแแ แแแขแแแแ แคแแ แแ แคแแ แแแขแจแ แแฎแแแ tidyr แแแแชแแคแชแแแ แแฃแจแแแแแก แ แแแแแแแแ แแแฌแแแแแ แแแแแแแแ แแแแแชแแแแ แแแกแฃแคแแแแแแ แแจแจ-แก แแฆแฌแแ แแก แจแแแแกแแแแแกแ แแ แฅแแ แแแแแแแก แแแแแชแแแแ แแแแแก แแแแแแแแแก แแแแแงแแแแแแ. แแกแแคแแแ แแแแแ แแแแขแแฅแขแแแแก แกแแ
แแแกแแแแ
TidyData แแแแชแแคแชแแ
แแแแแแ แแแฌแแกแ แแแแแฃแแ โ แแแฎแแแ แแแแ แแแแแชแแแแแแก แแแ แแ แฌแแแแแฃแ แกแแกแฃแคแแแแ แคแแ แแแจแ แแแงแแแแแจแ. แแฃแกแขแ แแแแแชแแแแแ แแ แแก แแแแแชแแแแแ, แกแแแแช:
- แแแแแแฃแแ แชแแแแแ แแ แแก แกแแแขแจแ.
- แแแแแแฃแแ แแแแแแ แแแแ แแ แแก แกแขแ แแฅแแแ.
- แแแแแแฃแแ แแแแจแแแแแแแ แแ แแก แฃแฏแ แแแ.
แแแแแแแแก แฉแแขแแ แแแแกแแก แแแชแแแแแแ แแแแแแ แแ แแแกแแฎแแ แฎแแแแแแ แแ แแแแแชแแแแแแแ แแฃแจแแแแ, แ แแแแแแแช แฌแแ แแแแแแแแแแ แแแฌแแกแ แแแแแฃแ แแแแแชแแแแแจแ.
แซแแ แแแแแ แคแฃแแฅแชแแแแ แจแแแแก tidyr แแแแแขแจแ
tidyr แจแแแชแแแก แคแฃแแฅแชแแแแแก แแ แแแแแแแแแก, แ แแแแแแช แจแแฅแแแแแแ แชแฎแ แแแแแแก แแแ แแแฅแแแแกแแแแก:
fill()
- แกแแแขแจแ แแแแแ แแฃแแ แแแแจแแแแแแแแแแก แจแแแกแแแ แฌแแแ แแแแจแแแแแแแแแแ;separate()
โ แงแแคแก แแ แ แแแแก แ แแแแแแแแ แแแฌแแแแ แแแแงแแคแแก แแแแแงแแแแแแ;unite()
โ แแกแ แฃแแแแก แ แแแแแแแแ แแแแแก แแ แแจแ แแแแ แแแแแแแแก แแแแ แแชแแแก, แคแฃแแฅแชแแแก แจแแแ แฃแแแแฃแ แแแฅแแแแแแแกseparate()
;pivot_longer()
โ แคแฃแแฅแชแแ, แ แแแแแแช แแแ แแแฅแแแแก แแแแแชแแแแแก แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ;pivot_wider()
- แคแฃแแฅแชแแ, แ แแแแแแช แแแ แแแฅแแแแก แแแแแชแแแแแก แแ แซแแแ แคแแ แแแขแแแแ แคแแ แแ แคแแ แแแขแจแ. แคแฃแแฅแชแแแก แแแแ แจแแกแ แฃแแแแฃแแ แกแแแแ แแกแแแ แ แแแแ แแชแแpivot_longer()
.gather()
แแแซแแแแแแฃแแ โ แคแฃแแฅแชแแ, แ แแแแแแช แแแ แแแฅแแแแก แแแแแชแแแแแก แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ;spread()
แแแซแแแแแแฃแแ - แคแฃแแฅแชแแ, แ แแแแแแช แแแ แแแฅแแแแก แแแแแชแแแแแก แแ แซแแแ แคแแ แแแขแแแแ แคแแ แแ แคแแ แแแขแจแ. แคแฃแแฅแชแแแก แแแแ แจแแกแ แฃแแแแฃแแ แกแแแแ แแกแแแ แ แแแแ แแชแแgather()
.
แแฎแแแ แแแแชแแคแชแแ แแแแแชแแแแ แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ แแแแแแ แขแแชแแแกแแแแก แแ แแแ แแฅแแ
แแแ แ, แคแฃแแฅแชแแแแ แแแแแแงแแแแแแแ แแ แขแแแแก แขแ แแแกแคแแ แแแชแแแกแแแแก gather()
ะธ spread()
. แแ แคแฃแแฅแชแแแแแก แแ แกแแแแแแก แฌแแแแแก แแแแแแแแแแแจแ แแจแแแ แ แแแฎแแ, แ แแ แแแแฎแแแ แแแแแแ แฃแแ แแแแแกแแแแกแแแแก, แแแ แจแแ แแก แแแแแขแแก แแแขแแ แแก แฉแแแแแแ, แแ แคแฃแแฅแชแแแแแก แกแแฎแแแแแ แแ แแแแ แแ แแฃแแแแขแแแ แแ แช แแฃ แแกแ แแจแแแ แ แแงแ แแ แแฌแแแแแ แกแแ แแฃแแแแแก แแแ แแแแแแจแ แแ แแแแก แแแแแแแจแ, แแฃ แ แแแแแ แคแฃแแฅแชแแแก แแแ แแแฅแแแ แฎแแแแ. แแแ แแฆแแก แฉแแ แฉแ แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแแแแ แแ แแแ แแฅแแ.
แแแแกแแแ แแแแแแจแแ แแแแ, แฅ แแแฌแแกแ แแแแแฃแแ แแแแแแขแ แแ แ แแฎแแแ, แแแแจแแแแแแแแแ แคแฃแแฅแชแแ, แ แแแแแแแช แจแแฅแแแแแแ แแแ แแฆแแก แฉแแ แฉแแแแแก แแแ แแแฅแแแแกแแแแก.
แแฎแแแ แแแแกแแแแแ pivot_longer()
ะธ pivot_wider()
แจแแแแแแแแฃแแ แแงแ แแแแแขแแก แแแแแแ แแ แแแฎแแกแแแแแแแแ cdata, แจแแฅแแแแแ แฏแแ แแแฃแแขแแกแ แแ แแแแ แแฃแแแแแก แแแแ .
tidyr 0.8.3.9000-แแก แฃแแฎแแแกแ แแแ แกแแแก แแแกแขแแแแชแแ
แแแแแขแแก แแฎแแแ, แฃแแฎแแแกแ แแแ แกแแแก แแแกแขแแแแชแแแกแแแแก แแแฌแแกแ แแแแแฃแแ 0.8.3.9000, แกแแแแช แแฎแแแ แคแฃแแฅแชแแแแแ แฎแแแแแกแแฌแแแแแ, แแแแแแงแแแแ แจแแแแแแ แแแแ.
devtools::install_github("tidyverse/tidyr")
แฌแแ แแก แแ แแก, แแก แคแฃแแฅแชแแแแ แฎแแแแแกแแฌแแแแแแ แแฎแแแแ GitHub-แแ แแแแแขแแก แแแแแแแแแ แแก แแแ แกแแแจแ.
แแฎแแ แคแฃแแฅแชแแแแแ แแแแแกแแแ
แกแแแแแแแแแแจแ, แซแแแแ แแ แแ แแก แซแแแแ แกแแ แแแขแแแแก แแแแแขแแแ แแฎแแ แคแฃแแฅแชแแแแแแ แแฃแจแแแแแกแแแแก; แฃแแแ แแแกแแแแแแ แแแแฆแแ แแแแแแแแก แซแแแแ แคแฃแแฅแชแแแแแก แแแแฃแแแแขแแชแแแแแ แแ แแแฉแแแแแ, แแฃ แ แแแแ แกแ แฃแแแแแ แแแแแ แแแแ แแชแแแแ แแฎแแแก แแแแแงแแแแแแ. pivot_*()
แคแฃแแฅแชแแแแ.
แแแแแแงแแแแแ แคแแ แแ แคแแ แแแขแ แแ แซแแ แคแแ แแแขแจแ.
แแแแแก แแแแแแแแ แจแแแ แแแแแแก แคแฃแแฅแชแแแก แแแแฃแแแแขแแชแแแแแ
# example
library(dplyr)
stocks <- data.frame(
time = as.Date('2009-01-01') + 0:9,
X = rnorm(10, 0, 1),
Y = rnorm(10, 0, 2),
Z = rnorm(10, 0, 4)
)
# old
stocks_gather <- stocks %>% gather(key = stock,
value = price,
-time)
# new
stocks_long <- stocks %>% pivot_longer(cols = -time,
names_to = "stock",
values_to = "price")
แแ แซแแแ แคแแ แแแขแแก แคแแ แแ แคแแ แแแขแจแ แแแแแแ แขแแชแแ.
แแแแแก แแแแแแแแ แแแแ แชแแแแแแก แคแฃแแฅแชแแแก แแแแฃแแแแขแแชแแแแแ
# old
stocks_spread <- stocks_gather %>% spread(key = stock,
value = price)
# new
stock_wide <- stocks_long %>% pivot_wider(names_from = "stock",
values_from = "price")
แแแแขแแ แ แแ แแฃแจแแแแแก แแแแแ แแแชแแแฃแ แแแแแแแแแแจแ pivot_longer()
ะธ pivot_wider()
, แแแแแแแแ แแแ แชแฎแ แแแจแ แแฅแชแแแแแก แแ แแฃแแแแขแแแจแ แแ แแ แแก แฉแแแแแแแแแ แกแแแขแแแ แกแแฎแแแแแ_ ะธ แฆแแ แแแฃแแแแแแ_แแแ แแแแ แกแแฎแแแแแ แฃแแแ แแงแแก แแ แญแงแแแแแจแ.
แชแฎแ แแแ, แ แแแแแแช แแแแแฎแแแ แแแแ แงแแแแแแ แแแ แขแแแแ แแแแ แแแแแ, แ แแแแ แแแแแฎแแแแแ แแฎแแ แแแแชแแคแชแแแแ แแฃแจแแแแแแ แแแฌแแกแ แแแแแฃแแ.
แจแแแแจแแแ แแแขแแ แแกแแแ
แฅแแแแแ แแแชแแแฃแแ แงแแแแ แขแแฅแกแขแ แแแแแขแแชแแฃแ แแ, แแ แแแขแงแแแ, แ แแ แฃแคแแกแ แแแ แแแแแแช แแ
แแแแแแขแแแ tidyverse แแแแแแแแแแแก แแคแแชแแแแฃแ แ แแแแแแแ แแแแแ.
แแแแแชแแแแ แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ แแแแแงแแแแแก แแแ แขแแแ แแแแแแแแ
pivot_longer ()
โ แแฎแแแแ แซแแแแแแก แแแแแชแแแแ แแแแ แแแแแก แกแแแขแแแแก แ แแแแแแแแแก แจแแแชแแ แแแแ แแ แแฌแแ แแแแแแก แ แแแแแแแแแก แแแแ แแแ.
แกแขแแขแแแจแ แฌแแ แแแแแแแแแ แแแแแแแแแแแก แแแกแแจแแแแแ, แฏแแ แฃแแแ แแแแแแแจแแ แแ แกแแญแแ แ แแแแแขแแแ:
library(tidyr)
library(dplyr)
library(readr)
แแแฅแแแ, แแแแฅแแก แชแฎแ แแแ แแแแแแแแฎแแแก แจแแแแแแแแ, แ แแแแแแช (แกแฎแแ แกแแแแแฎแแแแแ แแ แแแ) แแแแแฎแแแแแ แฎแแแฎแก แแแแ แ แแแแแแแกแ แแ แฌแแแฃแ แ แจแแแแกแแแแแก แจแแกแแฎแแ:
#> # A tibble: 18 x 11
#> religion `<$10k` `$10-20k` `$20-30k` `$30-40k` `$40-50k` `$50-75k`
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Agnostic 27 34 60 81 76 137
#> 2 Atheist 12 27 37 52 35 70
#> 3 Buddhist 27 21 30 34 33 58
#> 4 Catholic 418 617 732 670 638 1116
#> 5 Donโt kโฆ 15 14 15 11 10 35
#> 6 Evangelโฆ 575 869 1064 982 881 1486
#> 7 Hindu 1 9 7 9 11 34
#> 8 Historiโฆ 228 244 236 238 197 223
#> 9 Jehovahโฆ 20 27 24 24 21 30
#> 10 Jewish 19 19 25 25 30 95
#> # โฆ with 8 more rows, and 4 more variables: `$75-100k` <dbl>,
#> # `$100-150k` <dbl>, `>150k` <dbl>, `Don't know/refused` <dbl>
แแก แชแฎแ แแแ แจแแแชแแแก แ แแกแแแแแแแขแแ แ แแแแแแแก แแแแแชแแแแแก แ แแแแแจแ แแ แจแแแแกแแแแแก แแแแแแแ แแแแแคแแแขแฃแแแ แกแแแขแแแแก แกแแฎแแแแแแ. แแแแแแฃแแ แแแขแแแแ แแแแแ แ แแกแแแแแแแขแแ แ แแแแแแแแ แแแแฎแแแ แฃแฏแ แแแแแแก แแแแจแแแแแแแแแจแ แ แแแแแแแกแ แแ แจแแแแกแแแแแก แแแแแก แแแแแแแแแแแ. แแแแกแแแแแก, แ แแ แชแฎแ แแแ แแแฌแแกแ แแแแแฃแ, แกแฌแแ แคแแ แแแขแจแ แแแแงแแแแแ, แกแแแแแ แแกแแ แแแแแแงแแแแ pivot_longer()
:
pew %>%
pivot_longer(cols = -religion, names_to = "income", values_to = "count")
pew %>%
pivot_longer(cols = -religion, names_to = "income", values_to = "count")
#> # A tibble: 180 x 3
#> religion income count
#> <chr> <chr> <dbl>
#> 1 Agnostic <$10k 27
#> 2 Agnostic $10-20k 34
#> 3 Agnostic $20-30k 60
#> 4 Agnostic $30-40k 81
#> 5 Agnostic $40-50k 76
#> 6 Agnostic $50-75k 137
#> 7 Agnostic $75-100k 122
#> 8 Agnostic $100-150k 109
#> 9 Agnostic >150k 84
#> 10 Agnostic Don't know/refused 96
#> # โฆ with 170 more rows
แคแฃแแฅแชแแแก แแ แแฃแแแแขแแแ pivot_longer()
- แแแ แแแแ แแ แแฃแแแแขแ แกแแงแแแแแแ, แแฆแฌแแ แก แ แแแแแ แกแแแขแแแ แฃแแแ แแแแ แแแแแแแก. แแ แจแแแแฎแแแแแจแ, แงแแแแ แกแแแขแ แแแ แแ แแ แ.
- แแแแแแ แกแแฎแแแแแ_ แแซแแแแ แชแแแแแแก แกแแฎแแแก, แ แแแแแแช แจแแแฅแแแแแ แฉแแแ แแแแ แจแแแแแกแแแฃแแ แกแแแขแแแแก แกแแฎแแแแแแแแ.
- แฆแแ แแแฃแแแแแแ_แแแ แแซแแแแ แชแแแแแแก แกแแฎแแแก, แ แแแแแแช แจแแแฅแแแแแ แแแแ แแแแแแแฃแแ แกแแแขแแแแก แฃแฏแ แแแแแแก แแแแจแแแแแแแแแจแ แจแแแแฎแฃแแ แแแแแชแแแแแแแแ.
แกแแแชแแคแแแแชแแแแ
แแก แแ แแก แแแแแขแแก แแฎแแแ แคแฃแแฅแชแแ แแแฌแแกแ แแแแแฃแแ, แ แแแแแแช แแแ แ แแแฃแฌแแแแแแแ แแงแ แแแซแแแแแแฃแ แคแฃแแฅแชแแแแแแ แแฃแจแแแแแกแแก.
แกแแแชแแคแแแแชแแ แแ แแก แแแแแชแแแแ แฉแแ แฉแ, แ แแแแแก แแแแแแฃแแ แแฌแแ แแแ แจแแแกแแแแแแแ แแ แ แกแแแขแก แแฎแแแ แแแแแแแแแแ แแแ แแฆแแก แฉแแ แฉแแจแ แแ แแ แกแแแชแแแแฃแ แกแแแขแก, แ แแแแแแช แแฌแงแแแ:
- . แกแแฎแแแ แจแแแชแแแก แกแแแขแแก แแแแแแแแ แแแ แกแแฎแแแก.
- .แฆแแ แแแฃแแแแ แจแแแชแแแก แกแแแขแแก แกแแฎแแแก, แ แแแแแแช แจแแแชแแแก แฃแฏแ แแแแก แแแแจแแแแแแแแแก.
แกแแแชแแคแแแแชแแแก แแแ แฉแแแแแ แกแแแขแแแ แแกแแฎแแแก, โโแแฃ แ แแแแ แแฉแแแแแแก แแฎแแ แกแแแขแจแ แจแแแฃแแจแฃแแ แกแแแขแแแแก แกแแฎแแแก . แกแแฎแแแ.
แกแแแชแแคแแแแชแแ แแฆแฌแแ แก แกแแแขแแก แกแแฎแแแจแ แจแแแแฎแฃแ แแแขแแแแแแชแแแแแก, แแแแ แกแขแ แแฅแแแแ แแแแแแฃแแ แกแแแขแแกแแแแก แแ แแ แแ แกแแแขแแ แแแแแแฃแแ แชแแแแแแกแแแแก, แกแแแขแแก แกแแฎแแแแแ แแ แแแ, แแก แแแแแแ แขแแแ แจแแแซแแแแ แแแแแแแแแแแ แฉแแแแแก แแ แแแแแแขแจแ, แแแแ แแ แ แแแแแแแแ แแแแแแแแแก แแแแแฎแแแแแก แจแแแแแ แแก แแแฎแแแแ แแแแ แ. แฃแคแ แ แแแแแแ.
แกแแแชแแคแแแแชแแแก แแแ แ แแก แแ แแก, แ แแ แแฅแแแ แจแแแแซแแแแ แแแแฆแแ, แจแแชแแแแแ แแ แแแแกแแแฆแแ แแ แแฎแแแ แแแขแแแแแแชแแแแแ แแแแแแ แขแแชแแแก แแแแแชแแแแ แฉแแ แฉแแกแแแแก.
แชแฎแ แแแแก แคแแ แแ แคแแ แแแขแแแแ แแ แซแแ แคแแ แแแขแจแ แแแแแงแแแแแกแแก แกแแแชแแคแแแแชแแแแแแ แแฃแจแแแแแกแแแแก แแแแแแงแแแแ แคแฃแแฅแชแแ pivot_longer_spec()
.
แ แแแแ แแฃแจแแแแก แแก แคแฃแแฅแชแแ แแ แแก แแก, แ แแ แแแ แแฆแแแก แแแ แแฆแแก แแแแแกแแแแ แฉแแ แฉแแก แแ แฅแแแแก แแแก แแแขแแแแแแชแแแแแก แแแแแ แแฆแฌแแ แแแ แฌแแกแแ.
แแแแแแแแแ, แแแแฆแแ Who แแแแแชแแแแ แแแแ แแแ, แ แแแแแแช แแแฌแแแแแฃแแแ แแแแแขแแแ แแ แแแ แแแฌแแกแ แแแแแฃแแ. แแก แแแแแชแแแแ แแแแ แจแแแชแแแก แแแคแแ แแแชแแแก แฏแแแแแชแแแก แกแแแ แแแจแแ แแกแ แแ แแแแแแแชแแแก แแแแ แขแฃแแแ แแฃแแแแแก แจแแแแฎแแแแแแแก แจแแกแแฎแแ.
who
#> # A tibble: 7,240 x 60
#> country iso2 iso3 year new_sp_m014 new_sp_m1524 new_sp_m2534
#> <chr> <chr> <chr> <int> <int> <int> <int>
#> 1 Afghanโฆ AF AFG 1980 NA NA NA
#> 2 Afghanโฆ AF AFG 1981 NA NA NA
#> 3 Afghanโฆ AF AFG 1982 NA NA NA
#> 4 Afghanโฆ AF AFG 1983 NA NA NA
#> 5 Afghanโฆ AF AFG 1984 NA NA NA
#> 6 Afghanโฆ AF AFG 1985 NA NA NA
#> 7 Afghanโฆ AF AFG 1986 NA NA NA
#> 8 Afghanโฆ AF AFG 1987 NA NA NA
#> 9 Afghanโฆ AF AFG 1988 NA NA NA
#> 10 Afghanโฆ AF AFG 1989 NA NA NA
#> # โฆ with 7,230 more rows, and 53 more variables
แแแแแ แแแแจแแแแ แแแกแ แกแแแชแแคแแแแชแแ.
spec <- who %>%
pivot_longer_spec(new_sp_m014:newrel_f65, values_to = "count")
#> # A tibble: 56 x 3
#> .name .value name
#> <chr> <chr> <chr>
#> 1 new_sp_m014 count new_sp_m014
#> 2 new_sp_m1524 count new_sp_m1524
#> 3 new_sp_m2534 count new_sp_m2534
#> 4 new_sp_m3544 count new_sp_m3544
#> 5 new_sp_m4554 count new_sp_m4554
#> 6 new_sp_m5564 count new_sp_m5564
#> 7 new_sp_m65 count new_sp_m65
#> 8 new_sp_f014 count new_sp_f014
#> 9 new_sp_f1524 count new_sp_f1524
#> 10 new_sp_f2534 count new_sp_f2534
#> # โฆ with 46 more rows
แกแคแแ แแจแ แฅแแแงแแแ, iso2, iso3 แฃแแแ แชแแแแแแแแ. แฉแแแแ แแแแชแแแแ แกแแแขแแแแก แแแแแแ แฃแแแแ new_sp_m014 on newrel_f65.
แแ แกแแแขแแแแก แกแแฎแแแแแ แแแแฎแแแก แจแแแแแ แแแคแแ แแแชแแแก:
- แแ แแคแแฅแกแ
new_
แแแฃแแแแแแก, แ แแ แกแแแขแ แจแแแชแแแก แแแแแชแแแแแก แขแฃแแแ แแฃแแแแแก แแฎแแแ แจแแแแฎแแแแแแแก แจแแกแแฎแแ, แแแแแแแแ แ แแแ แแฆแแก แฉแแ แฉแ แจแแแชแแแก แแแคแแ แแแชแแแก แแฎแแแแ แแฎแแ แแแแแแแแแแแแ, แแแแขแแ แแ แแ แแคแแฅแกแก แแแแแแแแ แ แแแแขแแฅแกแขแจแ แแ แแแแแแ แ แแแแจแแแแแแแ แแ แแฅแแก. sp
/rel
/sp
/ep
แแฆแฌแแ แก แแแแแแแแแแก แแแแแแแกแขแแแแก แแแแแแก.m
/f
แแแชแแแแขแแก แกแฅแแกแ.014
/1524
/2535
/3544
/4554
/65
แแแชแแแแขแแก แแกแแแแแ แแแ แแแแแแแแแ.
แฉแแแ แจแแแแแซแแแ แแแแงแแ แแก แกแแแขแแแ แคแฃแแฅแชแแแก แแแแแงแแแแแแ extract()
แ แแแฃแแแ แฃแแ แแแแแฎแแขแแแก แแแแแงแแแแแแ.
spec <- spec %>%
extract(name, c("diagnosis", "gender", "age"), "new_?(.*)_(.)(.*)")
#> # A tibble: 56 x 5
#> .name .value diagnosis gender age
#> <chr> <chr> <chr> <chr> <chr>
#> 1 new_sp_m014 count sp m 014
#> 2 new_sp_m1524 count sp m 1524
#> 3 new_sp_m2534 count sp m 2534
#> 4 new_sp_m3544 count sp m 3544
#> 5 new_sp_m4554 count sp m 4554
#> 6 new_sp_m5564 count sp m 5564
#> 7 new_sp_m65 count sp m 65
#> 8 new_sp_f014 count sp f 014
#> 9 new_sp_f1524 count sp f 1524
#> 10 new_sp_f2534 count sp f 2534
#> # โฆ with 46 more rows
แแแฎแแแ แแแแแแแแแกแฌแแแแ แกแแแขแ . แกแแฎแแแ แฃแแแ แแแ แฉแแก แฃแชแแแแแ, แ แแแแแ แแก แแ แแก แฉแแแแ แแแแแฅแกแ แแแแแแแแ แแแแ แแแแแชแแแแ แแแแ แแแแก แกแแแขแแแแก แกแแฎแแแแแจแ.
แกแฅแแกแ แแ แแกแแแ (แกแแแขแแแ แกแฅแแกแ ะธ แแกแแแ) แแฅแแก แคแแฅแกแแ แแแฃแแ แแ แชแแแแแแ แแแแจแแแแแแแแแ, แแแแขแแ แ แแแแแแแแแแฃแแแ แแ แกแแแขแแแแก แคแแฅแขแแ แแแแ แแแแแงแแแแ:
spec <- spec %>%
mutate(
gender = factor(gender, levels = c("f", "m")),
age = factor(age, levels = unique(age), ordered = TRUE)
)
แแ แแแแแก, แแแแกแแแแแก, แ แแ แแแแแแแงแแแแ แฉแแแ แแแแ แจแแฅแแแแแ แกแแแชแแคแแแแชแแ แแ แแแแแแแฃแ แ แแแ แแฆแแก แฉแแ แฉแแจแ แแแแช แแ แแฃแแแแขแ แฃแแแ แแแแแแแงแแแแ แกแแแช แคแฃแแฅแชแแแจแ pivot_longer()
.
who %>% pivot_longer(spec = spec)
#> # A tibble: 405,440 x 8
#> country iso2 iso3 year diagnosis gender age count
#> <chr> <chr> <chr> <int> <chr> <fct> <ord> <int>
#> 1 Afghanistan AF AFG 1980 sp m 014 NA
#> 2 Afghanistan AF AFG 1980 sp m 1524 NA
#> 3 Afghanistan AF AFG 1980 sp m 2534 NA
#> 4 Afghanistan AF AFG 1980 sp m 3544 NA
#> 5 Afghanistan AF AFG 1980 sp m 4554 NA
#> 6 Afghanistan AF AFG 1980 sp m 5564 NA
#> 7 Afghanistan AF AFG 1980 sp m 65 NA
#> 8 Afghanistan AF AFG 1980 sp f 014 NA
#> 9 Afghanistan AF AFG 1980 sp f 1524 NA
#> 10 Afghanistan AF AFG 1980 sp f 2534 NA
#> # โฆ with 405,430 more rows
แงแแแแแคแแ แ, แ แแช แฉแแแ แแแแแแแแแ, แจแแแซแแแแ แกแฅแแแแขแฃแ แแ แแงแแก แแแแแกแแฎแฃแแ แจแแแแแแแแแ แแ:
แกแแแชแแคแแแแชแแ แแ แแแแแ แแแแจแแแแแแแแก แแแแแงแแแแแแ (.value)
แแแแแ แแแชแแแฃแ แแแแแแแแจแ, แกแแแชแแคแแแแชแแแก แกแแแขแ .แฆแแ แแแฃแแแแ แจแแแชแแแแ แแฎแแแแ แแ แ แแแแจแแแแแแแแก, แฃแแแขแแก แจแแแแฎแแแแแจแ แแก แแกแแ.
แแแแ แแ แแแแฏแแ แจแแแซแแแแ แฌแแ แแแแฅแแแแก แกแแขแฃแแชแแ, แ แแแแกแแช แแญแแ แแแแแ แแแแแชแแแแแแก แจแแแ แแแแแ แกแแแขแแแแแแ แกแฎแแแแแกแฎแแ แขแแแแก แแแแแชแแแแ แแแแจแแแแแแแแแแ. แแแแแแแแ แแแแแแ แคแฃแแฅแชแแแก แแแแแงแแแแแ spread()
แแแแก แแแแแแแแ แกแแแแแแ แ แแฃแแ แแฅแแแแ.
แฅแแแแแ แแแงแแแแแแ แแแแแแแแ แแฆแแแฃแแแ
แแแแแ แจแแแฅแแแแ แขแ แแแแแแแก แแแแแชแแแแ แฉแแ แฉแ.
family <- tibble::tribble(
~family, ~dob_child1, ~dob_child2, ~gender_child1, ~gender_child2,
1L, "1998-11-26", "2000-01-29", 1L, 2L,
2L, "1996-06-22", NA, 2L, NA,
3L, "2002-07-11", "2004-04-05", 2L, 2L,
4L, "2004-10-10", "2009-08-27", 1L, 1L,
5L, "2000-12-05", "2005-02-28", 2L, 1L,
)
family <- family %>% mutate_at(vars(starts_with("dob")), parse_date)
#> # A tibble: 5 x 5
#> family dob_child1 dob_child2 gender_child1 gender_child2
#> <int> <date> <date> <int> <int>
#> 1 1 1998-11-26 2000-01-29 1 2
#> 2 2 1996-06-22 NA 2 NA
#> 3 3 2002-07-11 2004-04-05 2 2
#> 4 4 2004-10-10 2009-08-27 1 1
#> 5 5 2000-12-05 2005-02-28 2 1
แจแแฅแแแแแ แแแ แแฆแแก แฉแแ แฉแ แจแแแชแแแก แแแแแชแแแแแก แแ แแ แแฏแแฎแแก แจแแแแแแแก แจแแกแแฎแแ แแแแแแฃแ แกแขแ แแฅแแแจแ. แแฏแแฎแแแก แจแแแซแแแแ แฐแงแแแแแ แแ แแ แแ แแ แ แจแแแแ. แแแแแแฃแแ แแแแจแแแกแแแแก แแแชแแแฃแแแ แแแแแชแแแแแ แแแแแแแแแก แแแ แแฆแแกแ แแ แกแฅแแกแแก แจแแกแแฎแแ, แฎแแแ แแแแแแฃแแ แแแแจแแแก แแแแแชแแแแแ แชแแแแ แกแแแขแแแจแแ, แฉแแแแ แแแแชแแแแ แแก แแแแแชแแแแแ แกแฌแแ แคแแ แแแขแจแ แแแแแงแแแแแ แแแแแแแแกแแแแก.
แแแฎแแแ แแแแแแแแแกแฌแแแแ, แ แแ แฉแแแ แแแแฅแแก แแ แ แชแแแแแ แแแคแแ แแแชแแ แแแแแแฃแแ แแแแจแแแก แจแแกแแฎแแ: แแแแ แกแฅแแกแ แแ แแแแแแแแแก แแแ แแฆแ (แกแแแขแแแ แแ แแคแแฅแกแแ dop แจแแแชแแแก แแแแแแแแแก แแแ แแฆแก, แกแแแขแแแก แแ แแคแแฅแกแแ แกแฅแแกแ แจแแแชแแแก แแแแจแแแก แกแฅแแกแก). แแแกแแแแแแแแ แจแแแแแ แแ แแก แแก, แ แแ แแกแแแ แฃแแแ แแแแแฉแแแแแ แชแแแแแฃแ แกแแแขแแแจแ. แฉแแแ แจแแแแแซแแแ แแแแก แแแแแแแแ แกแแแชแแคแแแแชแแแก แแแแแ แแ แแแแ, แ แแแแแจแแช แกแแแขแ .value
แแฅแแแแ แแ แ แแแแกแฎแแแแแแฃแแ แแแแจแแแแแแแ.
spec <- family %>%
pivot_longer_spec(-family) %>%
separate(col = name, into = c(".value", "child"))%>%
mutate(child = parse_number(child))
#> # A tibble: 4 x 3
#> .name .value child
#> <chr> <chr> <dbl>
#> 1 dob_child1 dob 1
#> 2 dob_child2 dob 2
#> 3 gender_child1 gender 1
#> 4 gender_child2 gender 2
แแแจ แแกแ, แแขแแแแแ แแแแ แแแแแแฎแแแแ แแแแแแฆแแแจแแฃแแ แแแแแ แจแแกแ แฃแแแแฃแ แแแฅแแแแแแแแก.
pivot_longer_spec(-family)
โ แจแแฅแแแแแ แกแแแชแแคแแแแชแแ, แ แแแแแแช แจแแแฃแแจแแแก แงแแแแ แแ แกแแแฃแ แกแแแขแก แแฏแแฎแแก แกแแแขแแก แแแ แแ.separate(col = name, into = c(".value", "child"))
- แแแงแแแแ แกแแแขแ . แกแแฎแแแ, แ แแแแแแช แจแแแชแแแก แฌแงแแ แแก แแแแแแแก แกแแฎแแแแแก, แฅแแแแ แฎแแแแก แแแแแงแแแแแแ แแ แแแฆแแแฃแแ แแแแจแแแแแแแแแแก แกแแแขแแแจแ แจแแงแแแแแ .แฆแแ แแแฃแแแแ ะธ แแแแจแแ.mutate(child = parse_number(child))
โ แแแ แแแฅแแแแก แแแแแก แแแแจแแแแแแแแแ แแแแจแแ แขแแฅแกแขแแแแ แ แแชแฎแแแแ แแแแแชแแแแแแก แขแแแแแแ.
แแฎแแ แฉแแแ แจแแแแแซแแแ แแแแแฆแแ แแแฆแแแฃแแ แกแแแชแแคแแแแชแแ แแแแแแแแ แแแ แแแแแชแแแแ แฉแแ แฉแแแ แแ แแแแแงแแแแแ แชแฎแ แแแ แกแแกแฃแ แแแ แคแแ แแแแแ.
family %>%
pivot_longer(spec = spec, na.rm = T)
#> # A tibble: 9 x 4
#> family child dob gender
#> <int> <dbl> <date> <int>
#> 1 1 1 1998-11-26 1
#> 2 1 2 2000-01-29 2
#> 3 2 1 1996-06-22 2
#> 4 3 1 2002-07-11 2
#> 5 3 2 2004-04-05 2
#> 6 4 1 2004-10-10 1
#> 7 4 2 2009-08-27 1
#> 8 5 1 2000-12-05 2
#> 9 5 2 2005-02-28 1
แฉแแแ แแแงแแแแแ แแ แแฃแแแแขแก na.rm = TRUE
, แ แแแแแ แแแแแชแแแแ แแแแแแแแแแแ แคแแ แแ แแแซแฃแแแแก แจแแฅแแแแก แแแแแขแแแแแ แ แแแแแ แแ แแ แกแแแฃแแ แแแแแแ แแแแแกแแแแก. แแแแขแแ แ แแ แแ-2 แแฏแแฎแก แฐแงแแแก แแฎแแแแ แแ แแ แจแแแแ, na.rm = TRUE
แแแ แแแขแแแก แแซแแแแ, แ แแ แแ-2 แแฏแแฎแก แแฅแแแแ แแ แแ แแฌแแ แแแ แแแแแกแแแแแจแ.
แแแ แแฆแแก แฉแแ แฉแแแแแก แแแแแแ แขแแชแแ แแ แซแแแ แคแแ แแแขแแแแ แคแแ แแ แคแแ แแแขแจแ
pivot_wider()
- แแ แแก แจแแแ แฃแแแแฃแแ แขแ แแแกแคแแ แแแชแแ แแ แแแ แแฅแแ แแ แแแก แแแ แแฆแแก แฉแแ แฉแแก แกแแแขแแแแก แ แแแแแแแแแก แ แแแแแแก แ แแแแแแแแแก แจแแแชแแ แแแแ.
แแ แขแแแแก แขแ แแแกแคแแ แแแชแแ แซแแแแ แแจแแแแแแ แแแแแแงแแแแแ แแแแแชแแแแแแก แแฃแกแข แคแแ แแแจแ แแแกแแงแแแแแ, แแฃแแชแ, แแก แขแแฅแแแแ แจแแแซแแแแ แกแแกแแ แแแแแ แแงแแก แแ แแแแแขแแชแแแแจแ แแแแแงแแแแแฃแแ แแ แแแกแแแ แชแฎแ แแแแแแก แจแแกแแฅแแแแแแ แแ แกแฎแแ แแแกแขแ แฃแแแแขแแแแแ แแแขแแแ แแชแแแกแแแแก.
แ แแแแฃแ แแ แคแฃแแฅแชแแแแ pivot_longer()
ะธ pivot_wider()
แแ แแแ แกแแแแขแ แแฃแแแแ แแ แฌแแ แแแฅแแแแแ แแแฅแแแแแแแแก แแ แแแแแแแแก แกแแฌแแแแแฆแแแแแแ, แ.แ. df %>% pivot_longer(spec = spec) %>% pivot_wider(spec = spec)
ะธ df %>% pivot_wider(spec = spec) %>% pivot_longer(spec = spec)
แแแแแ แฃแแแแก แแ แแแแแแแก df.
แชแฎแ แแแแก แคแแ แแ แคแแ แแแขแจแ แแแแแงแแแแแก แฃแแแ แขแแแแกแ แแแแแแแแ
แแแแก แแแแแแกแขแ แแ แแแ, แแฃ แ แแแแ แแฃแจแแแแก แคแฃแแฅแชแแ pivot_wider()
แฉแแแ แแแแแแแงแแแแแ แแแแแชแแแแ แแแแแก แแแแแ_แจแแฎแแแแ แแแ, แ แแแแแแช แแแแฎแแแก แแแคแแ แแแชแแแก แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แแฆแ แแชแฎแแแแ แกแฎแแแแแกแฎแแ แกแแแแฃแ แแแ แแแแแแก แแแซแ แแแแแก แแแแแแ แแก แแแกแฌแแ แแ.
#> # A tibble: 114 x 3
#> fish station seen
#> <fct> <fct> <int>
#> 1 4842 Release 1
#> 2 4842 I80_1 1
#> 3 4842 Lisbon 1
#> 4 4842 Rstr 1
#> 5 4842 Base_TD 1
#> 6 4842 BCE 1
#> 7 4842 BCW 1
#> 8 4842 BCE2 1
#> 9 4842 BCW2 1
#> 10 4842 MAE 1
#> # โฆ with 104 more rows
แฃแแแขแแก แจแแแแฎแแแแแจแ, แแก แชแฎแ แแแ แฃแคแ แ แแแคแแ แแแชแแฃแแ แแ แแแแแกแแงแแแแแแแ แแฅแแแแ, แแฃ แแแแแแฃแแ แกแแแแฃแ แแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แชแแแแ แกแแแขแจแ แฌแแ แแแแแแ.
fish_encounters %>% pivot_wider(names_from = station, values_from = seen)
fish_encounters %>% pivot_wider(names_from = station, values_from = seen)
#> # A tibble: 19 x 12
#> fish Release I80_1 Lisbon Rstr Base_TD BCE BCW BCE2 BCW2 MAE
#> <fct> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
#> 1 4842 1 1 1 1 1 1 1 1 1 1
#> 2 4843 1 1 1 1 1 1 1 1 1 1
#> 3 4844 1 1 1 1 1 1 1 1 1 1
#> 4 4845 1 1 1 1 1 NA NA NA NA NA
#> 5 4847 1 1 1 NA NA NA NA NA NA NA
#> 6 4848 1 1 1 1 NA NA NA NA NA NA
#> 7 4849 1 1 NA NA NA NA NA NA NA NA
#> 8 4850 1 1 NA 1 1 1 1 NA NA NA
#> 9 4851 1 1 NA NA NA NA NA NA NA NA
#> 10 4854 1 1 NA NA NA NA NA NA NA NA
#> # โฆ with 9 more rows, and 1 more variable: MAW <int>
แแก แแแแแชแแแแ แแแแ แแแ แแฌแแ แก แแแคแแ แแแชแแแก แแฎแแแแ แแแจแแ, แ แแแแกแแช แกแแแแฃแ แแ แแแแแ แแฆแแแแฉแแแ, แ.แ. แแฃ แ แแแแแแแ แแแแแ แ แแแแแแแ แกแแแแฃแ แก แแ แแแฃแคแแฅแกแแ แแแแ, แแแจแแ แแก แแแแแชแแแ แแ แแฅแแแแ แชแฎแ แแแจแ. แแก แแแจแแแแก, แ แแ แแแแแแแแแแ แจแแแแกแแแ NA-แแ.
แแฃแแชแ, แแ แจแแแแฎแแแแแจแ แฉแแแ แแแชแแ, แ แแ แฉแแแแฌแแ แแก แแ แแ แกแแแแแ แแแจแแแแก, แ แแ แแแแแ แแ แฉแแแแ, แแแแขแแ แจแแแแแซแแแ แแแแแแแงแแแแ แแ แแฃแแแแขแ แแแแจแแแแแแแแแ_แจแแแกแแแ แคแฃแแฅแชแแแจแ pivot_wider()
แแ แจแแแแกแแ แแก แแแแแขแแแแแฃแแ แแแแจแแแแแแแแแ แแฃแแแแแ:
fish_encounters %>% pivot_wider(
names_from = station,
values_from = seen,
values_fill = list(seen = 0)
)
#> # A tibble: 19 x 12
#> fish Release I80_1 Lisbon Rstr Base_TD BCE BCW BCE2 BCW2 MAE
#> <fct> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
#> 1 4842 1 1 1 1 1 1 1 1 1 1
#> 2 4843 1 1 1 1 1 1 1 1 1 1
#> 3 4844 1 1 1 1 1 1 1 1 1 1
#> 4 4845 1 1 1 1 1 0 0 0 0 0
#> 5 4847 1 1 1 0 0 0 0 0 0 0
#> 6 4848 1 1 1 1 0 0 0 0 0 0
#> 7 4849 1 1 0 0 0 0 0 0 0 0
#> 8 4850 1 1 0 1 1 1 1 0 0 0
#> 9 4851 1 1 0 0 0 0 0 0 0 0
#> 10 4854 1 1 0 0 0 0 0 0 0 0
#> # โฆ with 9 more rows, and 1 more variable: MAW <int>
แกแแแขแแก แกแแฎแแแแก แแแแแ แแ แแแ แแ แแแแแ แฌแงแแ แแก แชแแแแแแแแ
แฌแแ แแแแแแแแแ, แ แแ แแแแฅแแก แชแฎแ แแแ, แ แแแแแแช แจแแแชแแแก แแ แแแฃแฅแขแแก, แฅแแแงแแแกแ แแ แฌแแแก แแแแแแแแชแแแก. แขแแกแขแแก แแแ แแฆแแก แฉแแ แฉแแก แจแแกแแฅแแแแแแ, แจแแแแซแแแแ แแแฃแจแแแ แจแแแแแแ แแแแ:
df <- expand_grid(
product = c("A", "B"),
country = c("AI", "EI"),
year = 2000:2014
) %>%
filter((product == "A" & country == "AI") | product == "B") %>%
mutate(value = rnorm(nrow(.)))
#> # A tibble: 45 x 4
#> product country year value
#> <chr> <chr> <int> <dbl>
#> 1 A AI 2000 -2.05
#> 2 A AI 2001 -0.676
#> 3 A AI 2002 1.60
#> 4 A AI 2003 -0.353
#> 5 A AI 2004 -0.00530
#> 6 A AI 2005 0.442
#> 7 A AI 2006 -0.610
#> 8 A AI 2007 -2.77
#> 9 A AI 2008 0.899
#> 10 A AI 2009 -0.106
#> # โฆ with 35 more rows
แฉแแแแ แแแแชแแแแ แแแแแคแแ แแแแแ แแแแแชแแแแ แฉแแ แฉแ แแกแ, แ แแ แแ แแ แกแแแขแ แจแแแชแแแแแก แแแแแชแแแแแก แแ แแแฃแฅแขแแกแ แแ แฅแแแงแแแก แแแแแแฃแแ แแแแแแแแชแแแกแแแแก. แแแแกแแแแแก แฃแแ แแแแ แแแแแแแ แแแแแแจแ แกแแฎแแแแแ_แแแ แแแฅแขแแ แ, แ แแแแแแช แจแแแชแแแก แจแแกแแแ แแแแแแ แแแแแแแก แกแแฎแแแแแก.
df %>% pivot_wider(names_from = c(product, country),
values_from = "value")
#> # A tibble: 15 x 4
#> year A_AI B_AI B_EI
#> <int> <dbl> <dbl> <dbl>
#> 1 2000 -2.05 0.607 1.20
#> 2 2001 -0.676 1.65 -0.114
#> 3 2002 1.60 -0.0245 0.501
#> 4 2003 -0.353 1.30 -0.459
#> 5 2004 -0.00530 0.921 -0.0589
#> 6 2005 0.442 -1.55 0.594
#> 7 2006 -0.610 0.380 -1.28
#> 8 2007 -2.77 0.830 0.637
#> 9 2008 0.899 0.0175 -1.30
#> 10 2009 -0.106 -0.195 1.03
#> # โฆ with 5 more rows
แแฅแแแ แแกแแแ แจแแแแซแแแแ แแแแแแงแแแแ แกแแแชแแคแแแแชแแแแ แคแฃแแฅแชแแแกแแแแก pivot_wider()
. แแแแ แแ แ แแชแ แฌแแ แแแแแแ pivot_wider()
แกแแแชแแคแแแแชแแ แแแแแแแก แกแแแแ แแกแแแ แ แแแแแแ แขแแชแแแก pivot_longer()
: แแแแแแแแฃแแ แกแแแขแแแ . แกแแฎแแแแแแแจแแแแแแแแแแก แแแแแงแแแแแแ .แฆแแ แแแฃแแแแ แแ แกแฎแแ แกแแแขแแแ.
แแ แแแแแชแแแแ แแแแ แแแแกแแแแก แจแแแแซแแแแ แจแแฅแแแแ แแแ แแแแฃแแ แกแแแชแแคแแแแชแแ, แแฃ แแกแฃแ แ, แ แแ แงแแแแ แจแแกแแซแแ แฅแแแงแแแแกแ แแ แแ แแแฃแฅแขแแก แแแแแแแแชแแแก แฐแฅแแแแแก แกแแแฃแแแ แ แกแแแขแ แแ แแ แ แแฎแแแแ แแก, แ แแช แแแชแแแฃแแแ แแแแแชแแแแแจแ:
spec <- df %>%
expand(product, country, .value = "value") %>%
unite(".name", product, country, remove = FALSE)
#> # A tibble: 4 x 4
#> .name product country .value
#> <chr> <chr> <chr> <chr>
#> 1 A_AI A AI value
#> 2 A_EI A EI value
#> 3 B_AI B AI value
#> 4 B_EI B EI value
df %>% pivot_wider(spec = spec) %>% head()
#> # A tibble: 6 x 5
#> year A_AI A_EI B_AI B_EI
#> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 2000 -2.05 NA 0.607 1.20
#> 2 2001 -0.676 NA 1.65 -0.114
#> 3 2002 1.60 NA -0.0245 0.501
#> 4 2003 -0.353 NA 1.30 -0.459
#> 5 2004 -0.00530 NA 0.921 -0.0589
#> 6 2005 0.442 NA -1.55 0.594
แแฎแแแ tidyr แแแแชแแคแชแแแ แแฃแจแแแแแก แ แแแแแแแแ แแแฌแแแแแ แแแแแแแแ
แแแแแชแแแแ แแแกแฃแคแแแแแแ แแจแจ-แก แแฆแฌแแ แแก แจแแแแกแแแแแกแ แแ แฅแแ แแแแแแแก แแแแแชแแแแ แแแแแก แแแแแแแแแก แแแแแงแแแแแแ.
แแแแแชแแแแ แแแแ แแแ us_rent_income แจแแแชแแแก แกแแจแฃแแแ แจแแแแกแแแแแก แแ แแฏแแ แแก แแแคแแ แแแชแแแก แแจแจ-แก แงแแแแ แจแขแแขแแกแแแแก 2017 แฌแแแกแแแแก (แแแแแชแแแแแ แฎแแแแแกแแฌแแแแแแ แแแแแขแจแ Tidycensus).
us_rent_income
#> # A tibble: 104 x 5
#> GEOID NAME variable estimate moe
#> <chr> <chr> <chr> <dbl> <dbl>
#> 1 01 Alabama income 24476 136
#> 2 01 Alabama rent 747 3
#> 3 02 Alaska income 32940 508
#> 4 02 Alaska rent 1200 13
#> 5 04 Arizona income 27517 148
#> 6 04 Arizona rent 972 4
#> 7 05 Arkansas income 23789 165
#> 8 05 Arkansas rent 709 5
#> 9 06 California income 29454 109
#> 10 06 California rent 1358 3
#> # โฆ with 94 more rows
แแ แคแแ แแแ, แ แแแแแจแแช แแแแแชแแแแแ แแแแฎแแแ แแแแแชแแแแ แแแแ แแแจแ us_rent_income แแแแแแ แแฃแจแแแแ แฃแแแแฃแ แแกแแ แแแฃแฎแแ แฎแแแแแแ, แแแแขแแ แแแกแฃแ แก แจแแแฅแแแแ แแแแแชแแแแ แแแแ แแแ แกแแแขแแแแ: แแแฅแแ แแแแแ, rent_moe, แ แแแแ , แจแแแแกแแแแแ_แแแ. แแ แกแแแชแแคแแแแชแแแก แจแแกแแฅแแแแแแ แแ แแแแแ แแแ แแ แกแแแแแก, แแแแ แแ แแแแแแ แ แแก แแ แแก, แ แแ แฉแแแ แแแญแแ แแแแ แชแแแแแแก แแแแจแแแแแแแแแแก แงแแแแ แแแแแแแแชแแแก แแแแแ แแ แแแ แแ แจแแคแแกแแแ/แแแแแ แจแแแแแ แจแแฅแแแแแ แกแแแขแแก แกแแฎแแแ.
spec <- us_rent_income %>%
expand(variable, .value = c("estimate", "moe")) %>%
mutate(
.name = paste0(variable, ifelse(.value == "moe", "_moe", ""))
)
#> # A tibble: 4 x 3
#> variable .value .name
#> <chr> <chr> <chr>
#> 1 income estimate income
#> 2 income moe income_moe
#> 3 rent estimate rent
#> 4 rent moe rent_moe
แแ แกแแแชแแคแแแแชแแแก แแแฌแแแแแ pivot_wider()
แแแแซแแแแก แจแแแแแก, แ แแกแแช แแแซแแแ:
us_rent_income %>% pivot_wider(spec = spec)
#> # A tibble: 52 x 6
#> GEOID NAME income income_moe rent rent_moe
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 01 Alabama 24476 136 747 3
#> 2 02 Alaska 32940 508 1200 13
#> 3 04 Arizona 27517 148 972 4
#> 4 05 Arkansas 23789 165 709 5
#> 5 06 California 29454 109 1358 3
#> 6 08 Colorado 32401 109 1125 5
#> 7 09 Connecticut 35326 195 1123 5
#> 8 10 Delaware 31560 247 1076 10
#> 9 11 District of Columbia 43198 681 1424 17
#> 10 12 Florida 25952 70 1077 3
#> # โฆ with 42 more rows
แแกแแคแแแ แแแแแ
แแแแฏแแ แแแแแชแแแแ แแแแ แแแแก แกแแกแฃแ แแแ แคแแ แแแจแ แแแงแแแแ แ แแแแแแแแ แแแแแฏแก แแแแแฎแแแก.
แแแแแชแแแแ แแแแ แแแ world_bank_pop แจแแแชแแแก แแกแแคแแแ แแแแแแก แแแแแชแแแแแก แแแแแแฃแแ แฅแแแงแแแก แแแกแแฎแแแแแแก แจแแกแแฎแแ 2000-แแแ 2018 แฌแแแแแ.
#> # A tibble: 1,056 x 20
#> country indicator `2000` `2001` `2002` `2003` `2004` `2005` `2006`
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 ABW SP.URB.Tโฆ 4.24e4 4.30e4 4.37e4 4.42e4 4.47e+4 4.49e+4 4.49e+4
#> 2 ABW SP.URB.Gโฆ 1.18e0 1.41e0 1.43e0 1.31e0 9.51e-1 4.91e-1 -1.78e-2
#> 3 ABW SP.POP.Tโฆ 9.09e4 9.29e4 9.50e4 9.70e4 9.87e+4 1.00e+5 1.01e+5
#> 4 ABW SP.POP.Gโฆ 2.06e0 2.23e0 2.23e0 2.11e0 1.76e+0 1.30e+0 7.98e-1
#> 5 AFG SP.URB.Tโฆ 4.44e6 4.65e6 4.89e6 5.16e6 5.43e+6 5.69e+6 5.93e+6
#> 6 AFG SP.URB.Gโฆ 3.91e0 4.66e0 5.13e0 5.23e0 5.12e+0 4.77e+0 4.12e+0
#> 7 AFG SP.POP.Tโฆ 2.01e7 2.10e7 2.20e7 2.31e7 2.41e+7 2.51e+7 2.59e+7
#> 8 AFG SP.POP.Gโฆ 3.49e0 4.25e0 4.72e0 4.82e0 4.47e+0 3.87e+0 3.23e+0
#> 9 AGO SP.URB.Tโฆ 8.23e6 8.71e6 9.22e6 9.77e6 1.03e+7 1.09e+7 1.15e+7
#> 10 AGO SP.URB.Gโฆ 5.44e0 5.59e0 5.70e0 5.76e0 5.75e+0 5.69e+0 4.92e+0
#> # โฆ with 1,046 more rows, and 11 more variables: `2007` <dbl>,
#> # `2008` <dbl>, `2009` <dbl>, `2010` <dbl>, `2011` <dbl>, `2012` <dbl>,
#> # `2013` <dbl>, `2014` <dbl>, `2015` <dbl>, `2016` <dbl>, `2017` <dbl>
แฉแแแแ แแแแแแแ แจแแแฅแแแแ แแฃแกแขแ แแแแแชแแแแแแก แแแแ แแแ แแแแแแฃแแ แชแแแแแแ แกแแแฃแแแ แกแแแขแจแ. แแแฃแ แแแแแแแแ แแฃแกแขแแ แ แ แแแแแฏแแแแ แกแแญแแ แ, แแแแ แแ แฉแแแ แแแแแฌแงแแแ แงแแแแแแ แแจแแแ แ แแ แแแแแแแ: แฌแแแ แแแแแฌแแแแแฃแแแ แ แแแแแแแแ แกแแแขแจแ.
แแแแก แแแแแกแฌแแ แแแแก แแแแแแ, แแฅแแแ แฃแแแ แแแแแแงแแแแ แคแฃแแฅแชแแ pivot_longer()
.
pop2 <- world_bank_pop %>%
pivot_longer(`2000`:`2017`, names_to = "year")
#> # A tibble: 19,008 x 4
#> country indicator year value
#> <chr> <chr> <chr> <dbl>
#> 1 ABW SP.URB.TOTL 2000 42444
#> 2 ABW SP.URB.TOTL 2001 43048
#> 3 ABW SP.URB.TOTL 2002 43670
#> 4 ABW SP.URB.TOTL 2003 44246
#> 5 ABW SP.URB.TOTL 2004 44669
#> 6 ABW SP.URB.TOTL 2005 44889
#> 7 ABW SP.URB.TOTL 2006 44881
#> 8 ABW SP.URB.TOTL 2007 44686
#> 9 ABW SP.URB.TOTL 2008 44375
#> 10 ABW SP.URB.TOTL 2009 44052
#> # โฆ with 18,998 more rows
แจแแแแแแ แแแแแฏแ แแ แแก แแแแแแแขแแ แแก แชแแแแแแก แแแแแแแแแ แแแ.
pop2 %>% count(indicator)
#> # A tibble: 4 x 2
#> indicator n
#> <chr> <int>
#> 1 SP.POP.GROW 4752
#> 2 SP.POP.TOTL 4752
#> 3 SP.URB.GROW 4752
#> 4 SP.URB.TOTL 4752
แกแแแแช SP.POP.GROW แแ แแก แแแกแแฎแแแแแแก แแ แแ, SP.POP.TOTL แแ แแก แแแแแแแ แแแกแแฎแแแแแ แแ SP.URB. * แแแแแ, แแแแ แแ แแฎแแแแ แฅแแแแฅแแกแแแแก. แแแแแ แแแแงแแ แแก แแแแจแแแแแแแแแ แแ แชแแแแแแ: แคแแ แแแแ - แคแแ แแแแ (แกแฃแ แแ แฃแ แแแแฃแแ) แแ แชแแแแแ, แ แแแแแแช แจแแแชแแแก แ แแแแฃแ แแแแแชแแแแแก (แแแกแแฎแแแแแ แแ แแ แแ):
pop3 <- pop2 %>%
separate(indicator, c(NA, "area", "variable"))
#> # A tibble: 19,008 x 5
#> country area variable year value
#> <chr> <chr> <chr> <chr> <dbl>
#> 1 ABW URB TOTL 2000 42444
#> 2 ABW URB TOTL 2001 43048
#> 3 ABW URB TOTL 2002 43670
#> 4 ABW URB TOTL 2003 44246
#> 5 ABW URB TOTL 2004 44669
#> 6 ABW URB TOTL 2005 44889
#> 7 ABW URB TOTL 2006 44881
#> 8 ABW URB TOTL 2007 44686
#> 9 ABW URB TOTL 2008 44375
#> 10 ABW URB TOTL 2009 44052
#> # โฆ with 18,998 more rows
แแฎแแ แงแแแแแคแแ แ แ แแช แฃแแแ แแแแแแแแแ แแ แแก แชแแแแแแก แแ แกแแแขแแ แแแงแแคแ:
pop3 %>%
pivot_wider(names_from = variable, values_from = value)
#> # A tibble: 9,504 x 5
#> country area year TOTL GROW
#> <chr> <chr> <chr> <dbl> <dbl>
#> 1 ABW URB 2000 42444 1.18
#> 2 ABW URB 2001 43048 1.41
#> 3 ABW URB 2002 43670 1.43
#> 4 ABW URB 2003 44246 1.31
#> 5 ABW URB 2004 44669 0.951
#> 6 ABW URB 2005 44889 0.491
#> 7 ABW URB 2006 44881 -0.0178
#> 8 ABW URB 2007 44686 -0.435
#> 9 ABW URB 2008 44375 -0.698
#> 10 ABW URB 2009 44052 -0.731
#> # โฆ with 9,494 more rows
แแแแขแแฅแขแแแแก แกแแ
แแแแ แแแแแแแแ, แฌแแ แแแแแแแแแ, แ แแ แแแฅแแ แแแแขแแฅแขแแแแก แกแแ, แ แแแแแแช แแแแแแแแ แแ แแ แฉแแกแแแ แแแแกแแแขแแแแ:
contacts <- tribble(
~field, ~value,
"name", "Jiena McLellan",
"company", "Toyota",
"name", "John Smith",
"company", "google",
"email", "[email protected]",
"name", "Huxley Ratcliffe"
)
แแ แกแแแก แชแฎแ แแแแแแก แจแแแแแแ แกแแแแแแ แ แแฃแแแ, แ แแแแแ แแ แแ แกแแแแแก แชแแแแแ, แ แแแแแแช แแแแกแแแฆแแ แแแก, แแฃ แ แแแแแ แแแแแชแแแแแ แแแฃแแแแแก แแแแขแแฅแขแก. แแแแก แแแแแกแฌแแ แแแ แจแแแแแซแแแ แแแแก แแฆแแแจแแแแ, แ แแ แงแแแแแ แแฎแแแ แแแแขแแฅแขแแก แแแแแชแแแแแ แแฌแงแแแ "แกแแฎแแแแ", แแกแ แ แแ, แฉแแแ แจแแแแแซแแแ แจแแแฅแแแแ แฃแแแแแแฃแ แ แแแแแขแแคแแแแขแแ แ แแ แแแแแแ แแแ แแก แแ แแแ แงแแแแ แฏแแ แแ, แ แแชแ แแแแแก แกแแแขแ แจแแแชแแแก แแแแจแแแแแแแแก "แกแแฎแแแ":
contacts <- contacts %>%
mutate(
person_id = cumsum(field == "name")
)
contacts
#> # A tibble: 6 x 3
#> field value person_id
#> <chr> <chr> <int>
#> 1 name Jiena McLellan 1
#> 2 company Toyota 1
#> 3 name John Smith 2
#> 4 company google 2
#> 5 email [email protected] 2
#> 6 name Huxley Ratcliffe 3
แแฎแแ, แ แแแแกแแช แแแแฅแแก แฃแแแแแแฃแ แ ID แแแแแแฃแแ แแแแขแแฅแขแแกแแแแก, แจแแแแแซแแแ แแแแ แแ แแแแจแแแแแแแ แกแแแขแแแแ แแแฅแชแแแ:
contacts %>%
pivot_wider(names_from = field, values_from = value)
#> # A tibble: 3 x 4
#> person_id name company email
#> <int> <chr> <chr> <chr>
#> 1 1 Jiena McLellan Toyota <NA>
#> 2 2 John Smith google [email protected]
#> 3 3 Huxley Ratcliffe <NA> <NA>
แแแกแแแแ
แฉแแแ แแแ แแแ แแแ แแ, แ แแ แแฎแแแ แแแแชแแคแชแแ แแแฌแแกแ แแแแแฃแแ แแแ แแแแช แฃแคแ แ แแแขแฃแแชแแฃแ แ แแ แคแฃแแฅแชแแแแแแฃแ แแแแ แแแแจแแแแแแแแแ แแฆแแแแขแแแ แแแแแแแแ แแแแแ แคแฃแแฅแชแแแแก spread()
ะธ gather()
. แแแแแแแแแแ, แ แแ แแก แกแขแแขแแ แแแแแฎแแแ แแแแ แแแฃแแแแแแแแ pivot_longer()
ะธ pivot_wider()
.
แฌแงแแ แ: www.habr.com