問題タブ [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 - R で NSE を使用して有益な `stopifnot()` エラーを作成する
stopifnot()
私は有益なエラーを作りたいです。
私は読んだ:http: //r-pkgs.had.co.nz/tests.html(NSEを使用して、例の有益なテストエラーを出力することに関する最後のセクションは関連しているようです)および http://adv -r.had.co.nz/Computing-on-the-language.html しかし、これを簡潔なコードで有益なエラーを出力することはできません:
出力はこれを示します(それほど有益ではありません)
エラー: eval(bquote(.(x) %in% e[[.(z)]])) は TRUE ではありません
次のように言って、エラーをより有益なものにしたい:
エラー: 5 %in% e[["label"]] は TRUE ではありません
どうすればこれを機能させることができますか? または、私が望むものを達成するための最良のアプローチは何ですか
真でない場合の条件を記述して、代わりに独自のエラーを出力できることはわかっていますが、余分なコードは面倒です。これを機能させるために NSE を取得する方法を理解したいと思います。
編集: このアプローチの動機は、hadley のコメント ( http://r-pkgs.had.co.nz/tests.html )を読んだことにあります。
ただし、期待が失敗した場合、これはあまり有益な出力を提供しません。
代わりに、少し非標準の評価を使用して、より有益なものを生成できます。重要なのは、bquote() と eval() を使用することです。以下の bquote() 呼び出しでは、.(x) の使用に注意してください。() の内容が呼び出しに挿入されます。
r - 評価せずに引用リストの名前を取得する
私は引用されたリストを持っています
(私は最終的eval
に a のj
一部になりますdata.table
)
私が望むのはnames
、式を評価する正しい環境の外ではエラーが発生するため、式を評価することなくそのリストの を抽出することです。