C'è qualche motivo per cui dovrei usare
map(<list-like-object>, function(x) <do stuff>)
invece di
lapply(<list-like-object>, function(x) <do stuff>)
l'output dovrebbe essere lo stesso e i benchmark che ho fatto sembrano mostrare che lapplyè leggermente più veloce (dovrebbe essere come mapnecessità per valutare tutti gli input di valutazione non standard).
Quindi c'è qualche motivo per cui per casi così semplici dovrei davvero prendere in considerazione il passaggio a purrr::map? Non sto chiedendo qui riguardo ai propri gusti o antipatie sulla sintassi, altre funzionalità fornite da Purrr ecc., Ma rigorosamente sul confronto purrr::mapcon l' lapplyassunzione usando la valutazione standard, cioè map(<list-like-object>, function(x) <do stuff>). C'è qualche vantaggio purrr::mapin termini di prestazioni, gestione delle eccezioni ecc.? I commenti qui sotto suggeriscono che non lo è, ma forse qualcuno potrebbe elaborare un po 'di più?
~{}scorciatoia lambda (con o senza i {}sigilli l'affare per me in modo chiaro purrr::map(). L'applicazione del tipo purrr::map_…()è pratica e meno ottusa di vapply(). purrr::map_df()è una funzione super costosa ma semplifica anche il codice. Non c'è assolutamente nulla di sbagliato nel rimanere con la base R [lsv]apply(), sebbene .
purrrcose. Il mio punto è il seguente: tidyverseè favoloso per analisi / contenuti interattivi / report, non per la programmazione. Se ti stai impegnando lapplyo mapstai programmando e potresti finire un giorno con la creazione di un pacchetto. Quindi meno dipendenze sono, meglio è. Inoltre: a volte vedo persone che usano mapcon sintassi abbastanza oscura dopo. E ora che vedo i test delle prestazioni: se sei abituato alla applyfamiglia: atteniti ad esso.

tidyversesebbene, si può beneficiare della sintassi di pipe%>%e funzioni anonime~ .x + 1