首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能帮我处理purrr: map函数吗?

有人能帮我处理purrr: map函数吗?
EN

Stack Overflow用户
提问于 2022-04-29 10:57:41
回答 2查看 44关注 0票数 1

我有一个函数"compute_gini“,有4个输入。

代码语言:javascript
复制
compute_gini(df, var, split, minsplit)

我希望它运行200次,但每次运行时,拆分的输入值应该增加1。可以使用purrr:map函数多次运行这个函数吗?例如..。

代码语言:javascript
复制
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)

最新情况:

我在下面尝试了这个功能,它成功了!

代码语言:javascript
复制
  purrr::map(.x = 1:200, .f = compute_gini, df = penguins_sub, var = bm,  minsplit = 1)
EN

回答 2

Stack Overflow用户

发布于 2022-04-29 11:25:39

一种解决方案是在向量map上对ex进行1:200。请注意,您可以使用seq以另一种方式生成该向量。

那么,这应该是可行的:

代码语言:javascript
复制
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

这是与以下相同的输出(但在列表中):

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2022-04-29 11:14:51

一种方法是将函数与for-循环:for (i in 1:200) {compute_gini(df, var, i, minsplit)}组合起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72056879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档