当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R recipes step_regex 检测正则表达式


step_regex() 创建配方步骤的规范,该步骤将基于正则表达式创建新的虚拟变量。

用法

step_regex(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  pattern = ".",
  options = list(),
  result = make.names(pattern),
  input = NULL,
  keep_original_cols = TRUE,
  skip = FALSE,
  id = rand_id("regex")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

单个选择器函数,用于选择将在哪个变量中搜索正则表达式模式。选择器应解析为单个变量。有关更多详细信息,请参阅selections()

role

对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。

trained

指示预处理数量是否已估计的逻辑。

pattern

包含要在给定字符向量中匹配的正则表达式(或 fixed = TRUE 的字符串)的字符串。如果可能,由 as.character 强制转换为字符串。

options

grepl() 的选项列表,不应包含 xpattern

result

新变量名称的单个字符值。它应该是有效的列名称。

input

正在搜索的变量名称的单个字符值。在由 prep() 计算之前,这是 NULL

keep_original_cols

将原始变量保留在输出中的逻辑。默认为 FALSE

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,将新步骤添加到任何现有操作的序列中。

整理

当您tidy()此步骤时,将返回包含列terms(选定的选择器或变量)和result(新列名称)的小标题。

箱重

底层操作不允许使用案例权重。

例子

data(covers, package = "modeldata")

rec <- recipe(~description, covers) %>%
  step_regex(description, pattern = "(rock|stony)", result = "rocks") %>%
  step_regex(description, pattern = "ratake families")

rec2 <- prep(rec, training = covers)
rec2
#> 
#> ── Recipe ────────────────────────────────────────────────────────────────
#> 
#> ── Inputs 
#> Number of variables by role
#> predictor: 1
#> 
#> ── Training information 
#> Training data contained 40 data points and no incomplete rows.
#> 
#> ── Operations 
#> • Regular expression dummy variable using: "(rock|stony)" | Trained
#> • Regular expression dummy variable using: "ratake families" | Trained

with_dummies <- bake(rec2, new_data = covers)
with_dummies
#> # A tibble: 40 × 3
#>    description                                       rocks ratake.families
#>    <fct>                                             <int>           <int>
#>  1 1,cathedral family,rock outcrop complex,extremel…     1               0
#>  2 2,vanet,ratake families complex,very stony            1               1
#>  3 3,haploborolis,rock outcrop complex,rubbly            1               0
#>  4 4,ratake family,rock outcrop complex,rubbly           1               0
#>  5 5,vanet family,rock outcrop complex complex,rubb…     1               0
#>  6 6,vanet,wetmore families,rock outcrop complex,st…     1               0
#>  7 7,gothic family                                       0               0
#>  8 8,supervisor,limber families complex                  0               0
#>  9 9,troutville family,very stony                        1               0
#> 10 10,bullwark,catamount families,rock outcrop comp…     1               0
#> # ℹ 30 more rows
tidy(rec, number = 1)
#> # A tibble: 1 × 3
#>   terms       result id         
#>   <chr>       <chr>  <chr>      
#> 1 description NA     regex_0cUH6
tidy(rec2, number = 1)
#> # A tibble: 1 × 3
#>   terms       result id         
#>   <chr>       <chr>  <chr>      
#> 1 description rocks  regex_0cUH6
源代码:R/regex.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Detect a regular expression。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。