Gibt es einen Grund, warum ich verwenden sollte
map(<list-like-object>, function(x) <do stuff>)
anstatt
lapply(<list-like-object>, function(x) <do stuff>)
Die Ausgabe sollte dieselbe sein, und die von mir erstellten Benchmarks scheinen zu zeigen, dass sie lapplyetwas schneller sind (dies sollte so sein, wie es maperforderlich ist, um alle nicht standardmäßigen Bewertungseingaben zu bewerten).
Gibt es also einen Grund, warum ich in solch einfachen Fällen tatsächlich in Betracht ziehen sollte, zu zu wechseln purrr::map? Ich frage hier nicht nach den Vorlieben oder Abneigungen bezüglich der Syntax, anderer Funktionen, die von purrr usw. bereitgestellt werden, sondern ausschließlich nach dem Vergleich purrr::mapmit der lapplyAnnahme, dass die Standardbewertung verwendet wird, d map(<list-like-object>, function(x) <do stuff>). H. Gibt es einen Vorteil purrr::mapin Bezug auf Leistung, Ausnahmebehandlung usw.? Die Kommentare unten deuten darauf hin, dass dies nicht der Fall ist, aber vielleicht könnte jemand etwas mehr ausarbeiten?
~{}Abkürzung Lambda (mit oder ohne die {}Dichtungen für mich den Deal für Ebene purrr::map(). Die Art-Durchsetzung der purrr::map_…()ist handlich und weniger stumpf als vapply(). purrr::map_df()eine super teuer Funktion ist aber auch vereinfacht Code. Es gibt absolut nichts falsch mit mit Sockel R kleben [lsv]apply(), obwohl .
purrr. Mein Punkt ist folgender: tidyverseist fabelhaft für Analysen / interaktive / Berichte, nicht für die Programmierung. Wenn Sie verwenden möchten lapplyoder mapdann programmieren, können Sie eines Tages ein Paket erstellen. Je weniger Abhängigkeiten, desto besser. Plus: Ich sehe manchmal Leute, die danach mapmit ziemlich obskurer Syntax arbeiten. Und jetzt, wo ich Leistungstests sehe: Wenn Sie an applyFamilie gewöhnt sind, bleiben Sie dabei.

tidyverseobwohl, können Sie aus dem Rohr profitieren%>%und anonymen Funktionen~ .x + 1Syntax