gpt4 book ai didi

r - 如何使用 dplyr 管道将额外参数传递给 purrr::map

转载 作者:行者123 更新时间:2023-12-04 12:29:26 32 4
gpt4 key购买 nike

我有以下数据框和功能:

param_df <- data.frame(
x = 1:3 + 0.1,
y = 3:1 - 0.2
)


param_df
#> x y
#> 1 1.1 2.8
#> 2 2.1 1.8
#> 3 3.1 0.8

my_function <- function(x, y, z) {
x + y + z
}

我要做的是通过 param_dfmy_function函数但带有不包含在 param_df 中的额外参数,说 z=3 .

我试过这个但失败了:

library(tidyverse)
param_df %>%
purrr::map(my_function, z =3 )

Error in .f(.x[[i]], ...) : argument "y" is missing, with no default


预期结果是一个包含三个值的列表,全部为: 6.9 .

我知道我可以插入 3param_df作为额外的列 z .
但这不是我想要的。因为在现实中,函数和 z执行更复杂的计算。

我该怎么办?

最佳答案

library(tidyverse)

param_df <- data.frame(
x = 1:3 + 0.1,
y = 3:1 - 0.2
)

my_function <- function(x, y, z) {
x + y + z
}

param_df %>% pmap(~my_function(.x,.y,3))

# [[1]]
# [1] 6.9
#
# [[2]]
# [1] 6.9
#
# [[3]]
# [1] 6.9

另一种解决方案可能是:
map2(param_df$x, param_df$y, ~my_function(.x,.y,3))

关于r - 如何使用 dplyr 管道将额外参数传递给 purrr::map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52308903/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com