使用する理由はありますか
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
プログラミングをしている場合は、パッケージを作成することで1日になる可能性があります。次に、依存関係が少ないほど最適です。プラス:私は時々map
、かなりあいまいな構文で人々が使っているのを見ます。そして今、私はパフォーマンステストを見apply
ています。家族に慣れている場合は、それに固執してください。
tidyverse
しかしを、あなたはパイプから利益を得ることができる%>%
と無名関数の~ .x + 1
構文