-1

簡単な関数を書きましたが、結果として NaN が得られるのはなぜでしょうか。コードは次のとおりです。

データ

      en1=c(1,9,5,9,8,7)
      en=c(1,5,4,9,3,7)
      en2=c(1,4,5,4,8,7)

関数:

走る:

        err1(en,en1,en2)

結果:

         [1] NaN
           Warning message:
       In sqrt(mean(((pr - ob) * (ob - ref)), na.rm = na.rm)) : NaNs produced

これに関する任意のアイデアをお願いします

4

1 に答える 1

5

NaN負の数の平方根は定義されていないため(実数の場合)、取得します。

関数で使用したい場合absがあります。

err1 <- function(pr,ob,ref,na.rm=TRUE){
    sqrt(mean(abs((pr-ob)*(ob-ref)), na.rm = na.rm))}     

err1(en,en1,en2)
[1] 1.825742
于 2013-07-24T11:40:14.480 に答える