2

mgcv パッケージを使用して一般的な加算モデルを実行しようとしていますが、model.frame.default エラーが発生し続けます。

Error in model.frame.default(formula = Presence ~ Sex + wind_speed + baro +  : 
attempt to apply non-function

これが私が使用しているコードです(データセットのサイズのために「bam()」を使用しています):

stormGAM <- bam(Presence~Sex+wind_speed+s(wind_direc)+baro+s(SST_C)+as.factor(daynight), 
            data=PJstorm_alldata, family=binomial, na.action=TRUE)

データは次のようになります。

'data.frame':   31795 obs. of  25 variables:
 $ Con_hour        : num  20127330 20127340 20127350 20127360 20127370 ...
 $ Year            : int  2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ...
 $ Month           : int  7 7 7 7 7 7 7 7 7 7 ...
 $ Day             : int  3 3 3 3 3 3 3 3 3 3 ...
 $ Hour            : int  3 4 5 6 7 8 9 10 11 12 ...
 $ Timestamp       : POSIXct, format: "2012-07-03 03:00:00" "2012-07-03 04:00:00" "2012-07-03 05:00:00" ...
 $ Date            : Date, format: "2012-07-03" "2012-07-03" "2012-07-03" ...
 $ Region          : Factor w/ 1 level "Jervis Bay": 1 1 1 NA NA NA NA NA NA NA ...
 $ Station         : Factor w/ 17 levels "JB1","JB10","JB11",..: 12 12 12 NA NA NA NA NA NA NA ...
 $ ReceiverID      : Factor w/ 37 levels "VR2W-100736",..: 5 5 5 NA NA NA NA NA NA NA ...
 $ TagID           : Factor w/ 54 levels "A69-1303-32577",..: 43 43 43 NA NA NA NA NA NA NA ...
 $ Sex             : Factor w/ 2 levels "Female","Male": 1 1 1 NA NA NA NA NA NA NA ...
 $ wind_speed      : num  11 11 10 12 11 11 14 15 20 24 ...
 $ wind_direc      : num  277 282 278 272 252 269 256 244 220 207 ...
 $ sea_level_baro   : num  1018 1018 1018 1019 1019 ...
 $ baro            : num  1018 1018 1018 1019 1019 ...
 $ max_wind        : num  17 13 13 17 17 21 22 24 33 41 ...
 $ SST_C           : num  17.4 17.4 17.4 17.4 17.4 ...
 $ Presence        : int  1 1 1 0 0 0 0 0 0 0 ...
 $ gbirowsums      : int  1 1 1 0 0 0 0 0 0 0 ...
 $ Total_tagged    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Prop_Present    : num  1 1 1 0 0 0 0 0 0 0 ...
 $ sunrise         : POSIXct, format: "2012-07-03 07:05:34" "2012-07-03 07:05:34" "2012-07-03 07:05:34" ...
 $ sunset          : POSIXct, format: "2012-07-03 16:57:00" "2012-07-03 16:57:00" "2012-07-03 16:57:00" ...
 $ daynight        : chr  "night" "night" "night" "night" ...

私の式に明らかな間違いがあるようには見えません。列の長さが一致しないエラーがないことを確認しました。また、括弧、コンマ、または + が欠落していません。私のコードを mgcv パッケージを使用した同僚と比較しましたが、問題がわかりません。助言がありますか?

助けてくれてありがとう。

4

1 に答える 1

4

問題はこれ

na.action = TRUE

na.actionには関数が必要で、論理値 (from ?bam)が渡されました

na.action: データに s が含まれている場合に何が起こるかを示す関数NA。デフォルトは の設定によって設定され、それが設定されていna.actionない場合optionsna.failです。工場出荷時のデフォルト は ですna.omit

本質的に、model.frame()あなたは基本的にRに評価を求めていました

TRUE(df)

TRUE関数としてまだ呼び出されていないため、これは正しくエラーをスローします。

NAs が発生した場合に失敗するのではなく、行を省略したい場合は、次を使用します。

na.action = na.omit
于 2016-07-15T17:02:59.753 に答える