我有一个函数"compute_gini“,有4个输入。
compute_gini(df, var, split, minsplit)我希望它运行200次,但每次运行时,拆分的输入值应该增加1。可以使用purrr:map函数多次运行这个函数吗?例如..。
compute_gini(df , var , 1 , minsplit)
compute_gini(df , var , 2 , minsplit)
compute_gini(df , var , 3 , minsplit)
compute_gini(df , var , 4 , minsplit)
compute_gini(df , var , 5 , minsplit)
.....
compute_gini(df , var , 200 , minsplit)最新情况:
我在下面尝试了这个功能,它成功了!
purrr::map(.x = 1:200, .f = compute_gini, df = penguins_sub, var = bm, minsplit = 1)发布于 2022-04-29 11:25:39
一种解决方案是在向量map上对ex进行1:200。请注意,您可以使用seq以另一种方式生成该向量。
那么,这应该是可行的:
fn <- function(a, b, c, d) {
a + b + c + d
}
purrr::map(.x = 1:200, .f = fn, a = 1, c = 1, d = 1)
#> [[1]]
#> [1] 4
...
#> [[200]]
#> [1] 203这是与以下相同的输出(但在列表中):
fn(a = 1, b = 1, c = 1, d = 1)
#> [1] 4
fn(a = 1, b = 2, c = 1, d = 1)
#> [1] 5
fn(a = 1, b = 3, c = 1, d = 1)
#> [1] 6发布于 2022-04-29 11:14:51
一种方法是将函数与for-循环:for (i in 1:200) {compute_gini(df, var, i, minsplit)}组合起来。
https://stackoverflow.com/questions/72056879
复制相似问题