該函數在 purrr 1.0.0 中已被棄用,因為我們認為 NSE 函數不太適合 purrr。此外,rerun(n, x)
可以很容易地表達為 map(1:n, \(i) x)
rerun()
是生成樣本數據的便捷方法。它的工作原理與 replicate(..., simplify = FALSE)
類似。
值
長度為 .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 purrr reduce 通過迭代應用二元函數將列表減少為單個值
- R purrr rbernoulli 從伯努利分布生成隨機樣本
- R purrr rate-helpers 創建延遲率設置
- R purrr accumulate 累積向量縮減的中間結果
- R purrr imap 將函數應用於向量的每個元素及其索引
- R purrr list_transpose 轉置列表
- R purrr as_vector 將列表強製轉換為向量
- R purrr map_if 有條件地將函數應用於向量的每個元素
- R purrr map2 映射兩個輸入
- R purrr array-coercion 強製數組列出
- R purrr auto_browse 包裝一個函數,以便在出錯時自動 browser()
- R purrr pluck 安全地獲取或設置嵌套數據結構深處的元素
- R purrr insistently 將函數轉換為等待,然後在錯誤後重試
- R purrr map_depth 在給定深度映射/修改元素
- R purrr list_simplify 將列表簡化為原子或 S3 向量
- R purrr quietly 包裝一個函數來捕獲副作用
- R purrr list_flatten 壓平列表
- R purrr pmap 同時映射多個輸入(“並行”)
- R purrr possibly 包裝函數以返回值而不是錯誤
- R purrr head_while 查找全部滿足謂詞的頭/尾。
- R purrr keep_at 根據元素的名稱/位置保留/丟棄元素
- R purrr keep 根據元素的值保留/丟棄元素
- R purrr transpose 轉置列表。
- R purrr flatten 將列表的列表展平為簡單的向量
- R purrr every 列表中的每個元素、部分元素還是沒有一個元素滿足謂詞?
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Re-run expressions multiple times。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。