Kullanmamın bir nedeni var mı?
map(<list-like-object>, function(x) <do stuff>)
onun yerine
lapply(<list-like-object>, function(x) <do stuff>)
çıktı aynı olmalı ve yaptığım ölçütlerin lapply
biraz daha hızlı olduğunu gösteriyor gibi görünüyor ( map
standart dışı değerlendirme girişinin tümünü değerlendirmek için ihtiyaçlar olmalı ).
Öyleyse böyle basit durumlar için gerçekten geçiş yapmamın bir nedeni var purrr::map
mı? Ben kişinin beğenileri veya sözdizimi hakkında beğenmeme konusunda burada sormuyorum, diğer işlevsellikleri purrr vb tarafından sağlanan, ancak kesinlikle karşılaştırılması ile ilgili purrr::map
olan lapply
yani standart değerlendirmesini kullanarak varsayarak map(<list-like-object>, function(x) <do stuff>)
. purrr::map
Performans, istisna yönetimi vb. Açısından herhangi bir avantajı var mı ? Aşağıdaki yorumlar bunun olmadığını gösteriyor, ancak belki birileri biraz daha ayrıntılı olabilir?
~{}
olan veya olmayan kısayol lambda ( {}
düz benim için anlaşma mühürler purrr::map()
. tipi uygulayıcıları purrr::map_…()
daha kullanışlı ve daha az kalın kafalı olan vapply()
. purrr::map_df()
bir süper pahalı fonksiyonudur ama aynı zamanda basitleştirir kodu. Baz R ile yapıştırma ile kesinlikle hiçbir şey yanlış yok [lsv]apply()
gerçi, .
purrr
. Demek istediğim şu: tidyverse
analizler / etkileşimli / raporlar için harika, programlama için değil. Kullanmak zorundaysanız lapply
veya map
daha sonra programlama yapıyorsanız ve bir gün bir paket oluşturmakla sonuçlanabilir. Sonra daha az bağımlılık en iyisidir. Artı: Bazen insanlar map
sonra oldukça belirsiz bir sözdizimi kullanan insanlar görüyorum . Ve şimdi performans testlerini görüyorum: apply
aileye alışkınsanız: buna bağlı kalın.
tidyverse
Yine de yüklerseniz , boru%>%
ve anonim işlevler~ .x + 1
sözdiziminden yararlanabilirsiniz