R の assertthat パッケージを使用しており、アサーションの失敗時にエラーではなく警告を (一時的に) 出力したいと考えています。assertthat パッケージでこれを行う最も簡単な方法は何ですか?
エラーの代わりに警告を求めることは、アサーションの使用目的に反することを認識しています。長期的には、アサーションの失敗時にエラーを出力したいと考えています。短期的には、不適切な入力があってもコードが機能することを望んでいます。これは、不適切な入力による出力でも今のところ「十分」であるからです。
簡単な例: x を入力として x+5 を出力する関数があるとします。x!=3 の場合に警告を出力したい。最終的には assert_that を使用するので、警告に assertthat パッケージを使用できると便利です。
長期的には、これを使用します。
> x <- 3
> fn <- function(x) {assert_that(x==3); return(x+5)}
> fn(3)
[1] 8
> fn(4)
Error: x not equal to 3
短期的には、これが私がこれまでに持っている最高のものです。
> fn <- function(x) {if(!see_if(x==3)) warning(validate_that(x==3)); return(x+5)}
> fn(3)
[1] 8
> fn(4)
[1] 9
Warning message:
In fn(4) : x not equal to 3
可能であれば、より簡潔な解決策を探しています (最良のケースは、「output_warning」パラメーターを assert_that に渡すことですが、それは存在しないと思います)。