問題タブ [rlang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - purrr マップを使用した列ペアによる反復集計
他の 2 つの列でグループ化されたときに、1 つの列の要約推定値 (平均、中央値、カウントなど) を取得したい大規模なデータセットがあります。
を使用してこれを行う方法を真剣に考えようとしていますpurrr
- うまくいけば、このワークフローが将来のプロジェクトでクリックできるようになります...しかし、非常に行き詰まっています。
再現可能な例として、これは および によるグループ化、am
およびvs
の要約値の推定に機能します。mpg
am
ただし、この例を拡張するために、 and vs
;をグループ化したいとします。そして; am
_ gear
そして。am
_ carb
直観的には、これは処理する必要があるようですmap
。
r - dplyrを使用して非標準評価で構築された文字列を評価する方法は?
現在、 dplyrを使用したプログラミングに関するガイドをいくつか読んでいますが、非標準評価 (NSE) を使用して構築/連結文字列を評価する問題を解決する方法についてまだ混乱しています。この例を解決するには、NSE を使用するよりも優れた方法があることを認識していますが、その方法を学びたいと思っています。
これは私の望ましい結果ですが、変数をmutate()
構築する必要があります。
これは私の最初の試みで、文字列を使用しようとしています:
これは私の2回目の試みで、クォーシュアを使用しようとしています:
これは quosures と:=
演算子を使用しようとする私の 3 回目の試みです。
r - purrr と dplyr を使用する: rlang::sym が最善の方法です
私は dplyr 動詞を使用する関数を書きたいと思っていますrlang
。
purrr::map_df()
具体的な例を提供するために、 a内の変数を反復処理するために使用したいとしますdplyr::group_by()
。dplyr vignette を使用したプログラミングではmy_summarise()
、関数を作成します。rlang::enquo()
グループ化変数で使用し、で引用符を外すアプローチがあり!!
ます。my_summarise(df, g1)
このアプローチは、引用符で囲まれていない変数名 (ビネット内)を取る新しい dplyr のような関数を作成するために機能します。
対照的に、変数名を文字列として提供したいと思います。rlang::sym()
これを行う正しい方法はありますか?sym()
dplyr プログラミング ビネットでは言及されておらず、rlang tidy 評価記事でもほとんど言及されていないため、そうではないようです。より良い方法はありますか?
フォローアップとして、(最初にenquo
orを適用せずにsym
) 引用符を外すだけでうまくいくことがあるのはなぜですか? 以下の例で、select()
期待どおりに動作するのに、そうでないのはなぜgroup_by()
ですか?
更新: 答えは引用符を外すことではありません。select
より柔軟で、文字列を処理できますが、処理できgroup_by
ません。
その他の参照: Edwin Thoen によるこのブログ投稿。