Estou com uma dúvida comparando um map com um for.
v1 <- c('a', 'b', 'c')
v2 <- c(1, 2, 3)
map(1:3, ~assign(v1[[.x]], v2[[.x]]))
for (i in 1:3) {
assign(v1[[i]], v2[[i]])
}
O output desse map não deveria ser 3 objetos, a, b e c? Ele me retorna uma lista em vez de 3 objetos separados. O for funciona do jeito que eu esperava, como decrevi acima.
Rodrigo, perceba que a função assign()retorna o seu segundo argumento. A saída que você está recebendo do map() são os elementos de v2 mas em forma de lista (pois esse é o formato da saída do map(), sempre uma lista). Veja no exemplo abaixo que, de fato, a saída dos dois comandos são consistentes:
Se me permite a curiosidade, para quê você está usando um assign() dentro de um map()? Esse padrão é altamente perigoso e provavelmente posso te ajudar a encontrar uma solução melhor.
Brigado, Caio. Eu tinha esquecido como funcionava esse output do map.
Eu estava mexendo com um excel com várias abas, e tava usando o assign() pra criar um tibble pra cada aba, associando cada tibble com a respectiva aba.
Com a sua resposta eu percebi que não precisava, então ta tudo certo haha.