整然化(高度な制御)

概要

tidyrパッケージに含まれるpivot_longer_spec(), build_longer_spec()は、pivot_longer()のより低レベルなインターフェイスを提供します。基本的な使い方は解説しないため、基本的な使い方を知りたい方はpivot_longer()を参照してください。

関連ページ

関数

# 仕様書に従ってpivot_longer()を実施する
pivot_longer_spec(
  data,
  spec,
  names_repair = "check_unique",
  values_drop_na = FALSE,
  values_ptypes = list()
)

# 仕様書の作成
build_longer_spec(
  data,
  cols,
  names_to = "name",
  values_to = "value",
  names_prefix = NULL,
  names_sep = NULL,
  names_pattern = NULL,
  names_ptypes = NULL
)
引数指定説明
data必須データフレーム
spec必須変換する条件を記した仕様書
その他の引数の意味はpivot_longer()を参照してください

使い方

解説用データフレーム

tbl <- tibble (
  id = c(1, 2, 3),
  x1 = c('A', 'B', 'C'),
  x2 = c('a', 'b', NA),
)
> tbl
# A tibble: 3 x 3
     id x1    x2
  <dbl> <chr> <chr>
1     1 A     a
2     2 B     b
3     3 C     NA

1.基本的な使い方

# specオブジェクトを作成
spec <- build_longer_spec(tbl, cols = c(x1, x2))

# 整然化を行う
pivot_longer_spec(tbl, spec)
> spec
# A tibble: 2 x 3
  .name .value name
  <chr> <chr>  <chr>
1 x1	value  x1		
2 x2	value  x2

# A tibble: 6 x 3
     id name  value
  <dbl> <chr> <chr>
1     1 x1    A
2     1 x2    a
3     2 x1    B
4     3 x2    b
5     3 x1    C
6     3 x2    NA

2.仕様書の中身

処理の内容を記した仕様書(spec)pivot_longer_spec()に渡すことで動作します。仕様書の中身と対応する引数を以下に示します。

余談ですが、仕様書の構成はpivot_wider_spec()と同じです。

Sponsored Link