Quero fazer um loop nas linhas de a tibble
, uma coluna deve conter o nome que o slot correspondente deve ter na saída e as outras colunas são os argumentos da função.
Eu sei como resolver isso, mas queria saber se existe alguma possibilidade de fazer a nomenclatura dentro da pmap
função?
library(purrr)
library(tibble)
params <- tibble(nm = LETTERS[1:2], x = 1:2, y = 2:3)
## this has one addional level of nesting
pmap(params, function(nm, x, y) {
set_names(list(x + y), nm)
}) # %>% flatten would remove the unnecessary level
## correct format but mixes tidyverse syntax with base syntax
map(split(params, params$nm), ~ .x$x + .x$y)
## correct format & tidyverse syntax but naming must happen **outside**
pmap(params, function(nm, x, y) {
x + y
}) %>%
set_names(params$nm)
Resultado esperado como na versão 2 ou 3, com tidyverse
estilo, mas sem a necessidade de renomear o resultado posteriormente.
E se algo assim estiver totalmente em
tidyverse
sintaxe?A maneira como
pmap
funciona é que ele pega os nomes dos nomes do primeiro argumento, então isso não faz o pós-processamento dapmap
saída, mas adiciona esses nomes antes da execuçãopmap
para que a entrada corresponda ao que ele espera.dando
Outra opção com
pmap
: