Existe alguma razão para eu usar
map(<list-like-object>, function(x) <do stuff>)
ao invés de
lapply(<list-like-object>, function(x) <do stuff>)
o resultado deve ser o mesmo e os parâmetros de referência que eu fiz parecem mostrar que lapply
é um pouco mais rápido (deve ser o map
necessário para avaliar todas as informações de avaliação não padronizadas).
Então, existe alguma razão pela qual, para casos tão simples, eu deveria considerar mudar para purrr::map
? Não estou pedindo aqui sobre gosta ou não gosta sobre a sintaxe de um, outras funcionalidades fornecidas pelo purrr etc., mas estritamente sobre a comparação de purrr::map
com lapply
assumindo usando a avaliação padrão, ou seja map(<list-like-object>, function(x) <do stuff>)
. Existe alguma vantagem purrr::map
em termos de desempenho, tratamento de exceções etc.? Os comentários abaixo sugerem que não, mas talvez alguém possa elaborar um pouco mais?
~{}
atalho lambda (com ou sem os {}
selos, o negócio para mim é simples purrr::map()
. A aplicação do tipo purrr::map_…()
é útil e menos obtusa que vapply()
. purrr::map_df()
é uma função muito cara, mas também simplifica o código. Não há absolutamente nada de errado em ficar com a base R [lsv]apply()
, no entanto #
purrr
coisas. Meu argumento é o seguinte: tidyverse
é fabuloso para análises / material interativo / de relatórios, não para programação. Se você precisa usar lapply
ou map
está programando e pode acabar um dia criando um pacote. Então, quanto menos dependências, melhor. Além disso: às vezes vejo pessoas usando map
sintaxe bastante obscura depois. E agora que vejo testes de desempenho: se você está acostumado à apply
família: cumpra-o.
tidyverse
porém, você pode se beneficiar da tubulação%>%
e funções anônimas~ .x + 1
sintaxe