何かが真かどうかをチェックし、そうでない場合は特定のエラーメッセージを出力して終了するステートメント
@ニック:
プログラムでエラーをスローする条件をテストするために、わかりやすい名前で関数を記述する場合、エラーメッセージを制御できます。以下に例を示します。
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の「整頓された」の一部として最近リリースされた機能。