0

たとえば、実行した場合:

cor(rep(1,7), rep(1,7))
Error in cor(rep(1, 7), rep(1, 7)) :
  (converted from warning) the standard deviation is zero
 1: cor(rep(1, 7), rep(1, 7))
 2: .signalSimpleWarning("the standard deviation is zero", quote(cor(rep(1, 7), rep(1, 7))))
 3: withRestarts({
    .Internal(.signalCondition(simpleWarning(msg, call), msg, call))
    .Internal(.dfltWarn(msg, call))
}, muffleWarning = function() NULL)
 4: withOneRestart(expr, restarts[[1]])
 5: doWithOneRestart(return(expr), restart)

これは、同じ名前の列を持つ 2 つのデータ フレームの各列の相関関係を計算するためsapplyにを実行しようとすると問題になります。names(some.data.frame)約 80 の列があり、列の 1 つにゼロ ベクトルがあり、このクラッシュが呼び出されます。これを回避して代わりに出力する方法はありますNAか?

4

2 に答える 2

2

options コマンドで、すべての警告をエラーに変換するように R を設定しているようです。

これはそれを元に戻します:

options(warn=0)

暖かい:

警告メッセージの処理を設定します。warn が負の場合、すべての警告は無視されます。warn がゼロ (デフォルト) の場合、最上位関数が戻るまで警告が保存されます。通知された警告の数が 10 未満の場合は出力されます。それ以外の場合は、通知された警告の数を示すメッセージが表示されます。last.warning というオブジェクトが作成され、関数 warnings を介して出力できます。warn が 1 の場合、警告は発生時に出力されます。warn が 2 以上の場合、すべての警告がエラーになります。

于 2013-03-22T15:44:51.047 に答える
0

再現不可能:

R> cor(rep(1,7), rep(1,7))
[1] NA
Warning message:
In cor(rep(1, 7), rep(1, 7)) : the standard deviation is zero
R> 

最新バージョンを使用していることを確認し、セッションにランダムなものが浮かんでいないことを確認し、整形式で再現可能な質問をする方法を知っていることを確認してください。

于 2013-03-22T14:09:53.720 に答える