dplyr

pivot_longer() の例

pivot_longer()は、データを”長い形式”に変換します。つまり、複数の列を1つの列にまとめて、データをより長くしていきます。ここでは、サンプルデータフレームを作成し、pivot_longer()を適用する例を示します。

# tidyrパッケージをロード
library(tidyr)

# サンプルデータフレームの作成
data <- data.frame(
  id = c(1, 2),
  year_2019 = c(20, 30),
  year_2020 = c(25, 35)
)

# pivot_longerを使ってデータを長い形式に変換
long_data <- pivot_longer(data, cols = starts_with("year"),
                          names_to = "year",
                          values_to = "value")

# 変換後のデータを表示
print(long_data)
# A tibble: 4 × 3
     id year      value
  <dbl> <chr>     <dbl>
1     1 year_2019    20
2     1 year_2020    25
3     2 year_2019    30
4     2 year_2020    35
  • data: これは変換したいデータフレームです。ここではdataという名前のデータフレームが使用されています。

  • cols = starts_with(“year”): colsパラメータは、どの列を長い形式に変換するかを指定します。starts_with("year")は、「year」という文字列で始まるすべての列名を持つ列を対象とすることを意味します。つまり、year_2019year_2020の両列が選択され、変換の対象となります。

  • names_to = “year”: names_toパラメータは、新しく作成される列の名前を指定します。ここでは、元の列名から抽出された部分(この場合は年号を示す部分)が新たに"year"列として保存されます。

  • values_to = “value”: values_toパラメータは、元の列の値を保存する新しい列の名前を指定します。ここでは、year_2019year_2020列の値が"value"列に統合されて保存されます。

この操作によって、元のデータフレームの列が2つ(year_2019year_2020)から、1つのyear列と1つのvalue列を持つより長い形式のデータフレームに変換されます。これにより、データの分析や操作がさらに柔軟に行えるようになります。

pivot_wider() の例

pivot_wider()は、データを”広い形式”に変換します。つまり、1つまたは複数の列を分けて、データを広げる作業です。以下の例では、pivot_longer()で作成した長い形式のデータを元に戻す方法を示します。

# pivot_widerを使ってデータを広い形式に変換
wide_data <- pivot_wider(long_data, names_from = "year", values_from = "value")

# 変換後のデータを表示
print(wide_data)
# A tibble: 2 × 3
     id year_2019 year_2020
  <dbl>     <dbl>     <dbl>
1     1        20        25
2     2        30        35
  • long_data: これは、pivot_longer() を使って長い形式に変換されたデータフレームです。pivot_wider() の入力として使用されます。

  • names_from = “year”: names_from パラメータは、新しい列名を提供する元のデータフレームの列を指定します。ここでは "year" 列が使用され、この列に含まれる各ユニークな値(例えば「year_2019」、「year_2020」など)が新しいデータフレームの列名として使用されます。

  • values_from = “value”: values_from パラメータは、新しく形成される列の値を提供する列を指定します。ここでは "value" 列がその値として使用され、各年のデータが対応する新しい列に配置されます。

この操作によって、long_data 内のデータが、元の広い形式に戻されます。このようにpivot_wider()を使用することで、特定の分析や表示のニーズに合わせてデータ構造を効果的に再編成できます。例えば、各年ごとに分けられた列を持つデータフレームが再構築され、それぞれの列にはその年のデータ値が入ります。