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


R recipes step_sample 使用 dplyr 的示例行


step_sample() 创建配方步骤的规范,该步骤将使用 dplyr::sample_n()dplyr::sample_frac() 对行进行采样。

用法

step_sample(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  size = NULL,
  replace = FALSE,
  skip = TRUE,
  id = rand_id("sample")
)

参数

recipe

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

...

参数被忽略;包括在内是为了与其他步骤规范函数保持一致。

role

由于没有创建新变量,因此此步骤未使用。

trained

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

size

整数或分数。如果该值在 (0, 1) 范围内,则 dplyr::sample_frac() 将应用于数据。如果使用 1 或更大的整数值,则应用 dplyr::sample_n()NULL 的默认值使用 dplyr::sample_n() 和训练集的大小(或者较小的 new_data )。

replace

有或没有更换的样品?

skip

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

id

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

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

行过滤

此步骤可以完全删除观察结果(数据行),当稍后通过 bake() 将步骤应用于新数据时,这可能会产生意想不到的和/或有问题的后果。在任何给定的用例中,考虑 skip = TRUE 还是 skip = FALSE 更合适。在影响预测数据行的大多数情况下,可能根本不应该应用此步骤;相反,在开始预处理之前执行类似的操作 recipe()

整理

当您 tidy() 此步骤时,将返回包含 sizereplaceid 列的 tibble。

箱重

此步骤执行可以利用案例权重的无监督操作。因此,个案权重仅与频率权重一起使用。有关更多信息,请参阅 case_weights 中的文档和 tidymodels.org 中的示例。

也可以看看

其他行操作步骤:step_arrange()step_filter()step_impute_roll()step_lag()step_naomit()step_shuffle()step_slice()

其他 dplyr 步骤:step_arrange() , step_filter() , step_mutate_at() , step_mutate() , step_rename_at() , step_rename() , step_select() , step_slice()

例子


# Uses `sample_n`
recipe(~., data = mtcars) %>%
  step_sample(size = 1) %>%
  prep(training = mtcars) %>%
  bake(new_data = NULL) %>%
  nrow()
#> [1] 1

# Uses `sample_frac`
recipe(~., data = mtcars) %>%
  step_sample(size = 0.9999) %>%
  prep(training = mtcars) %>%
  bake(new_data = NULL) %>%
  nrow()
#> [1] 32

# Uses `sample_n` and returns _at maximum_ 20 samples.
smaller_cars <-
  recipe(~., data = mtcars) %>%
  step_sample() %>%
  prep(training = mtcars %>% slice(1:20))

bake(smaller_cars, new_data = NULL) %>% nrow()
#> [1] 20
bake(smaller_cars, new_data = mtcars %>% slice(21:32)) %>% nrow()
#> [1] 12
源代码:R/sample.R

相关用法


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