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 只能匹配一条信息

表格截图

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...