Ваш способ определения вашей функции довольно извилист.Вместо того, чтобы создавать 2 функции, затем 3-ю функцию, которая составляет список этих функций, почему бы не создать функцию, которая дает вам то, что вы хотите:
my_function <- function(vec, multi) {
tibble(
add_1_times_multi = (vec + 1) * multi,
neg_1_times_multi = - vec * multi
)
}
Кроме того, поскольку у вас есть только 2 вектора в качестве аргументовдля вашей функции вам не нужно pmap()
, и вы можете просто использовать map2()
:
my_vector <- rnorm(n = 10, mean = 100, sd = 1)
multiplyr <- 3
map2_df(my_vector, multiplyr, my_function)
Если вы действительно хотите использовать pmap()
:
l <- list(my_vector, multiplyr)
pmap_df(l, my_function)
Обратите внимание, чтовам не нужно передавать my_vector
в list()
, прежде чем передать его снова в list()
с multiplyr
.