144  実践 基本

library(tidyverse)

それでは、まずpivot_longerから練習してみましょう。

yoko <- tibble(
  city = c("札幌","東京","那覇"),
  `2018-04-01` = c("晴れ", "雨", "曇り"),
  `2018-04-02` = c("雨", "雨", "晴れ"),
  `2018-04-03` = c("晴れ", "雨", "曇り"),
)

yoko
# A tibble: 3 × 4
  city  `2018-04-01` `2018-04-02` `2018-04-03`
  <chr> <chr>        <chr>        <chr>       
1 札幌  晴れ         雨           晴れ        
2 東京  雨           雨           雨          
3 那覇  曇り         晴れ         曇り        

この表はスライドの再現です。

人には見やすいですが、tidyなデータではないということはお判りでしょうか?

スライドでの解説通りにpivot_longerを利用してみると、

tate <- yoko %>% 
  pivot_longer(
    cols = !city,
    names_to = "date",
    values_to = "tenki"
  )

tate
# A tibble: 9 × 3
  city  date       tenki
  <chr> <chr>      <chr>
1 札幌  2018-04-01 晴れ 
2 札幌  2018-04-02 雨   
3 札幌  2018-04-03 晴れ 
4 東京  2018-04-01 雨   
5 東京  2018-04-02 雨   
6 東京  2018-04-03 雨   
7 那覇  2018-04-01 曇り 
8 那覇  2018-04-02 晴れ 
9 那覇  2018-04-03 曇り 

見事、縦方向のデータにかわりました。この縦方向のデータ、今度はpivot_widerでもとにもどしてみると、

tate %>% 
  pivot_wider(
    id_cols = city,
    names_from = date,
    values_from = tenki
  )
# A tibble: 3 × 4
  city  `2018-04-01` `2018-04-02` `2018-04-03`
  <chr> <chr>        <chr>        <chr>       
1 札幌  晴れ         雨           晴れ        
2 東京  雨           雨           雨          
3 那覇  曇り         晴れ         曇り        

もどりましたね?