問題タブ [non-standard-evaluation]
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 - ネストされた関数でi、j、およびbyに可能なすべてを渡す方法は?
data.table
内部を使用するパッケージに取り組んでいます。このパッケージには、 by グループcount_by
内の特定の変数の個別の ID の数を計算する関数があります。data.table
いくつかの助けを借りて ( R data.table: 関数で「可能なすべて」を渡す方法は? ) これを期待どおりに動作させることができました:
reprex パッケージ(v0.3.0)により 2020-02-20 に作成
ここで、関数を別の関数内で使用したいと思いcount_by()
ます (以下の最小限の例):
reprex パッケージ(v0.3.0)により 2020-02-20 に作成
デバッグすると、が from から呼び出されcount_by()
た場合、も次のように置換されることがわかります。count_by()
wrapper()
substitute(DT[...])
DT
data
data
関数環境では使用できないため、count_by()
評価されutils::data
てエラーが発生します。これで問題は明確になりますが、解決策が思いつきません。
が適切に機能DT[...]
するためには、式全体を置き換える必要があります ( R data.table: How to pass "everything possible" to by in a function?またはpass variables and names to data.table function を参照)。しかし、代用されないために表現全体を代用することはできません。by
DT
このジレンマの解決策は何ですか?