Czy jest jakiś powód, dla którego powinienem używać
map(<list-like-object>, function(x) <do stuff>)
zamiast
lapply(<list-like-object>, function(x) <do stuff>)
wynik powinien być taki sam, a benchmarki, które stworzyłem, wydają się wskazywać, że lapplyjest nieco szybszy (powinno być tak samo, jak maptrzeba, aby ocenić wszystkie niestandardowe dane wejściowe do oceny).
Czy jest więc jakiś powód, dla którego w tak prostych przypadkach powinienem rozważyć przejście na purrr::map? Nie pytam tutaj o swoje upodobania lub antypatie dotyczące składni, innych funkcjonalności, które zapewnia mruczenie itp., A stricte o porównanie purrr::mapz lapplyzałożeniem, że stosuje się ocenę standardową, tj map(<list-like-object>, function(x) <do stuff>). Czy jest jakaś korzyść purrr::mappod względem wydajności, obsługi wyjątków itp.? Poniższe komentarze sugerują, że tak nie jest, ale może ktoś mógłby rozwinąć trochę więcej?
~{}skrót lambda (z {}pieczęciami lub bez, to dla mnie sprawa dla zwykłego purrr::map(). Egzekwowanie typów purrr::map_…()jest poręczne i mniej rozwlekłe niż vapply(). purrr::map_df()jest bardzo kosztowną funkcją, ale także upraszcza kod. Nie ma absolutnie nic złego w trzymaniu się bazy R [lsv]apply(), chociaż ,
purrrrzeczy. Chodzi mi o to: tidyversejest fantastyczny do analiz / interaktywnych / raportów, a nie do programowania. Jeśli musisz używać lapplylub mapprogramujesz i pewnego dnia możesz skończyć z utworzeniem pakietu. Im mniej zależności, tym lepiej. Plus: czasami widzę ludzi używających mappóźniej dość niejasnej składni. A teraz, gdy widzę testy wydajności: jeśli jesteś przyzwyczajony do applyrodziny: trzymaj się tego.

tidyverse, możesz skorzystać ze składni%>%~ .x + 1