問題タブ [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.

0 投票する
2 に答える
138 参照

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[...])DTdata

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 を参照)。しかし、代用されないために表現全体を代用することはできません。byDT

このジレンマの解決策は何ですか?