問題タブ [nse]
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 - dplyr の enquo を使用して、sparklyr 経由で Spark テーブルの列にアクセスする
Sparkテーブルの列をジャンプしながら、コールenquo
内でdplyrを使用できるようにしたいと思います。lapply
ただし、このコードを実行しようとすると、エラーが発生し続けます。
エラー
(function (x, strict = TRUE)
: 引数はすでに評価されています
エラーをenquo
次のように分離しました。
(そして同じエラー)
エラー
(function (x, strict = TRUE)
: 引数はすでに評価されています
なぜenquo
そのように使用できないのかを理解したいです。tbl_vars
通常の文字ベクトルを返しますが、これcol_name
は文字列であってはなりませんか? 構文が次の場合と同じように機能することを想定します。
しかし、lapply 内から呼び出された場合は明らかにそうではありません。
編集
sparklyr の側面を脇に置いておくと、より良い、より再現性の高い例を提供できます。
同じエラーが発生します。
望ましい結果
古い_
ベースの構文が機能します
一言で言えば、Spark テーブルの列にジャンプして同じ機能を実現したいので、 deprecated を使用したくありませんselect_
。
r - 複数の関数を運ぶ R オブジェクトの名前
S3 オブジェクトの構築に関する Hadley のアドバイスを読んで、私はヘルパー関数、コンストラクター関数、およびバリデーター関数を使用しています。簡単な再現可能な例:
結果のオブジェクトに、渡されたアイテムが持っていた元の名前の値を含めたいと思います ($x_name
上記の例)。コンストラクターを直接呼び出すと、deparse(substitute(...))
トリックが機能します。
しかし、ヘルパー関数を使用する場合はそうではありません:
私test_helper$x_name
も戻りたい[1] "alpha"
です。
deparse(substitute(...))
ヘルパー段階でステップを実行する以外に、コンストラクター関数 ( )がヘルパー経由でnew_test_object()
オブジェクトの「元の」名前にアクセスする方法はありますか? x
または、ヘルパー関数がそれをコンストラクターに渡すときに、その名前が確実に通過するようにしますか?