tidyr の extract

Rで学ぶ中級正規表現

Angelo Zehr

Data Journalist

これまでに使った関数

  • str_match
  • str_replace
  • str_match_all
  • str_replace_all
  • ...
Rで学ぶ中級正規表現

正規表現とデータフレームの交差点:

extract(
    data,
    col,
    into,
    regex = "([[:alnum:]]+)",
    remove = TRUE,
    convert = FALSE,
    ...
 )
Rで学ぶ中級正規表現

extract の引数

extract(
    data,
    col,
    into,
    regex = "([[:alnum:]]+)",
    remove = TRUE,
    convert = FALSE,
    ...
 )
  • data

  • col

  • into

  • regex

  • remove

  • convert

Rで学ぶ中級正規表現

Movies データフレーム

Rで学ぶ中級正規表現

str_match でできること

テーブルのスクリーンショット

screens_per_movie %<>%
  mutate(
    is_3d = str_match(line, "3D")
  )
Rで学ぶ中級正規表現

str_match の結果の見え方

テーブルのスクリーンショット

screens_per_movie %<>%
  mutate(
    is_3d = str_match(line, "3D")
  )
Rで学ぶ中級正規表現

str_match は1つの情報しか取得できない

テーブルのスクリーンショット

Rで学ぶ中級正規表現

extract が助けてくれること

Rで学ぶ中級正規表現

extract が助けてくれること

テーブルのスクリーンショット

extract(
  screens_per_movie,
  col = "line",
  into = c("is_3d", "screens"),
  regex = "(3D).*?(\\d+)$",
  remove = FALSE
 )
Rで学ぶ中級正規表現

extract の結果

テーブルのスクリーンショット

extract(
  screens_per_movie,
  col = "line",
  into = c("is_3d", "screens"),
  regex = "(3D).*?(\\d+)$",
  remove = FALSE
)
Rで学ぶ中級正規表現

練習しましょう!

Rで学ぶ中級正規表現

Preparing Video For Download...