何かが真であるかどうかをチェックし、そうでない場合は特定のエラーメッセージを出力して終了するステートメント
5 に答える
単体テスト用のRunitやtestthatなどのパッケージにも興味があるかもしれません。
@ニック:
プログラムでエラーをスローする条件をテストするために、わかりやすい名前で関数を作成すると、エラー メッセージを制御できます。次に例を示します。
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
これにより、1から8までの数字が出力され、次のメッセージが出力されます
Error: Less_Than_8(i) is not TRUE
かっこ内の「i」がテストに失敗した値に置き換えられればいいのですが、支払うだけの価値があります。
それよりも手の込んだものが必要な場合は、Runit を調べて、Harlan が提案したようにそれをテストしてください。
これは、コマンドで実現できますstop
。このコマンドは、関数の実行を停止し、エラー メッセージを出力します。たとえば、変数something
がFALSE
次のとおりかどうかをテストできます。
if(something == FALSE){
stop("error message to print")
}
同様に、warning
コマンドは警告を出力します (ただし、コードの実行は続行します)。
if(something == FALSE){
warning("error message to print")
}
これらはどちらもベース R によって提供され、独自の関数を作成する際にパッケージを実行したり含めたりする必要はありません。私は依存関係の少ないコードを書くためにこのアプローチを好み、この構文はパッケージ開発で広く使用されています。assert_that
ただし、同様の機能は、Hadley の「tidyverse」の一部として最近リリースされた機能を備えた「assertthat」パッケージによってサポートされています。