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


R purrr rerun 多次重新运行表达式


[Deprecated]

该函数在 purrr 1.0.0 中已被弃用,因为我们认为 NSE 函数不太适合 purrr。此外,rerun(n, x) 可以很容易地表达为 map(1:n, \(i) x)

rerun() 是生成样本数据的便捷方法。它的工作原理与 replicate(..., simplify = FALSE) 类似。

用法

rerun(.n, ...)

参数

.n

运行表达式的次数

...

要重新运行的表达式。

长度为 .n 的列表。 ... 的每个元素将为每个 .n 重新运行一次。

有一种特殊情况:如果有一个未命名的输入,则第二级列表将被删除。在这种情况下, rerun(n, x) 的行为类似于 replicate(n, x, simplify = FALSE)

例子

# old
5 |> rerun(rnorm(5)) |> str()
#> Warning: `rerun()` was deprecated in purrr 1.0.0.
#> ℹ Please use `map()` instead.
#>   # Previously
#>   rerun(5, rnorm(5))
#> 
#>   # Now
#>   map(1:5, ~ rnorm(5))
#> List of 5
#>  $ : num [1:5] 1.881 -0.125 -0.759 -0.509 -0.156
#>  $ : num [1:5] 0.1326 -0.9741 -1.2509 -0.0463 1.1374
#>  $ : num [1:5] 1.264 -0.549 0.682 -0.93 -0.975
#>  $ : num [1:5] -0.0271 0.4467 -0.3291 0.113 1.0512
#>  $ : num [1:5] 0.327 0.787 0.442 -1.019 -0.159
# new
1:5 |> map(\(i) rnorm(5)) |> str()
#> List of 5
#>  $ : num [1:5] -1.638 2.839 0.962 0.508 0.26
#>  $ : num [1:5] -0.773 -1.806 0.178 -0.526 0.4
#>  $ : num [1:5] -0.1226 -0.0713 2.0957 1.3221 1.2006
#>  $ : num [1:5] -0.7819 -0.4415 -0.246 0.3658 -0.0341
#>  $ : num [1:5] 0.2962 -0.2211 0.1877 -0.4381 -0.0887

# old
5 |>
  rerun(x = rnorm(5), y = rnorm(5)) |>
  map_dbl(\(l) cor(l$x, l$y))
#> Warning: `rerun()` was deprecated in purrr 1.0.0.
#> ℹ Please use `map()` instead.
#>   # Previously
#>   rerun(5, x = rnorm(5), y = rnorm(5))
#> 
#>   # Now
#>   map(1:5, ~ list(x = rnorm(5), y = rnorm(5)))
#> [1]  0.9497046 -0.3541633  0.8256722 -0.9416334 -0.5836642
# new
1:5 |>
  map(\(i) list(x = rnorm(5), y = rnorm(5))) |>
  map_dbl(\(l) cor(l$x, l$y))
#> [1]  0.90817642  0.01256163  0.65647896 -0.52973208  0.53135577
源代码:R/deprec-rerun.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Re-run expressions multiple times。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。