2017-02-17 10 views
2

これはthisのような投稿に基づいて単純にする必要がありますが、何とか私はそれを動作させることができません。この例で何が問題になっていますか?関数の外に私自身の警告メッセージを作成しますか?

x<-1 
y<-0 
if(x>y){warning("careful, one is greater than zero!")} 

それはstop()で動作します:

if(x>y){stop("careful, one is greater than zero!")} 

をだから、どちらかの私は、単純な文法ミスを作ってるんだか、警告が関数の外で使用することが想定されていませんか?

+6

正確には動作しません。それは私のために働くようだ... – joran

+0

多分あなたは警告を表示することを有効にしていない? –

+0

最初のものは何も返しません。 2番目に警告が表示されます。 –

答えて

1

あなたのコードは私とうまく動作します。私はR 3.3.2を使用しています。

あなたの問題の可能な解決策は、セッションで警告メッセージが有効になっているかどうかを確認することです。 ?オプションを読むと、関数によって返された値の間に警告値があることがわかります。 が警告:警告メッセージの扱いを設定します リファレンスから

。 warnが負の場合、すべての警告は無視されます。 warnが0(デフォルト)の場合、警告は最上位関数が返るまで格納されます。 10個以下の警告が通知された場合は、それ以外の場合は何個の警告が送信されたかを示すメッセージが表示されます。 last.warningというオブジェクトが作成され、関数warningsを通して出力されます。 warnが1の場合、警告は発生時に表示されます。 warnが2以上の場合、すべての警告はエラーになります。

警告の値が負の場合、警告メッセージは表示されません。 あなたは次のように警告メッセージを有効にすることができます。

options(warn=1) 

は、この再実行し、あなたのコードを変更してみてください。

関連する問題