Есть ли причина, почему я должен использовать
map(<list-like-object>, function(x) <do stuff>)
вместо того
lapply(<list-like-object>, function(x) <do stuff>)
выходные данные должны быть такими же, а сделанные мной тесты, по-видимому, показывают, что lapplyэто немного быстрее (это должно быть так, как mapнеобходимо для оценки всех нестандартных оценок).
Так есть ли причина, по которой в таких простых случаях мне стоит подумать о переходе на purrr::map? Я не спрашиваю здесь о подобных своем или антипатиях о синтаксисе, другие функции обеспечиваются purrr и т.д., но строго о сравнении purrr::mapс lapplyпредполагая , используя стандартную оценку, то есть map(<list-like-object>, function(x) <do stuff>). Есть ли какое-либо преимущество purrr::mapс точки зрения производительности, обработки исключений и т. Д.? Комментарии ниже предполагают, что это не так, но, возможно, кто-то мог бы уточнить немного больше?
~{}сокращение лямбда (с или без {}печатей сделка для меня для простого purrr::map(). Приведение типов в действие purrr::map_…()удобны и менее тупы, чем vapply(). purrr::map_df()это супер дорогая функция, но она также упрощает код. Нет ничего плохого в том, чтобы придерживаться базы R [lsv]apply(), хотя .
purrrвещи. Моя точка зрения заключается в следующем: tidyverseотлично подходит для анализа / интерактивных / отчетов, а не для программирования. Если вам нужно использовать lapplyили mapвы программируете, и однажды вы можете создать пакет. Тогда чем меньше зависимостей, тем лучше. Плюс: я иногда вижу людей, использующих mapдовольно туманный синтаксис после. И теперь, когда я вижу тестирование производительности: если вы привыкли к applyсемье: придерживайтесь этого.

tidyverseхотя, вы можете извлечь выгоду из трубы%>%и анонимных функций~ .x + 1синтаксиса