Apakah ada alasan mengapa saya harus menggunakannya
map(<list-like-object>, function(x) <do stuff>)
dari pada
lapply(<list-like-object>, function(x) <do stuff>)
outputnya harus sama dan tolok ukur yang saya buat nampaknya menunjukkan bahwa lapply
sedikit lebih cepat (harus sesuai dengan map
kebutuhan untuk mengevaluasi semua input non-standar-evaluasi).
Jadi apakah ada alasan mengapa untuk kasus sederhana seperti itu saya benar-benar harus mempertimbangkan untuk beralih ke purrr::map
? Saya tidak bertanya di sini tentang suka atau tidak suka seseorang tentang sintaks, fungsi lain yang disediakan oleh purrr dll, tetapi hanya tentang perbandingan purrr::map
dengan lapply
asumsi menggunakan evaluasi standar, yaitu map(<list-like-object>, function(x) <do stuff>)
. Apakah ada kelebihan yang purrr::map
dimiliki dalam hal kinerja, penanganan pengecualian, dll.? Komentar di bawah ini menunjukkan bahwa tidak, tetapi mungkin seseorang dapat menguraikan sedikit lebih banyak?
~{}
pintas lambda (dengan atau tanpa {}
segel kesepakatan bagi saya untuk polos purrr::map()
. Jenis-penegakan purrr::map_…()
yang berguna dan kurang tumpul dari vapply()
. purrr::map_df()
adalah fungsi super mahal tetapi juga menyederhanakan kode. Sama sekali tidak ada yang salah dengan bertahan dengan basis R [lsv]apply()
, meskipun .
purrr
barang. Maksud saya adalah sebagai berikut: tidyverse
luar biasa untuk analisis / interaktif / melaporkan barang, bukan untuk pemrograman. Jika Anda harus menggunakan lapply
atau map
kemudian Anda sedang pemrograman dan mungkin berakhir suatu hari dengan membuat paket. Maka semakin sedikit ketergantungan yang terbaik. Plus: Saya kadang-kadang melihat orang menggunakan map
sintaks yang tidak jelas setelahnya. Dan sekarang saya melihat pengujian kinerja: jika Anda terbiasa dengan apply
keluarga: patuhi itu.
tidyverse
, Anda mungkin mendapat manfaat dari sintaksis%>%
fungsi pipa dan anonim~ .x + 1