Ich versuche, ein allgemeines additives Modell mit dem mgcv Paket auszuführen, aber ich erhalte eine model.frame.default Störung zu erhalten:generali additiver Modell data.frame.default Fehler: Sie versuchen, Nicht-Funktion anwenden
Error in model.frame.default(formula = Presence ~ Sex + wind_speed + baro + :
attempt to apply non-function
hier ist der Code ich verwende (ich benutze „bam()“ wegen der Größe des Datensatzes):
stormGAM <- bam(Presence~Sex+wind_speed+s(wind_direc)+baro+s(SST_C)+as.factor(daynight),
data=PJstorm_alldata, family=binomial, na.action=TRUE)
und hier ist das, was die Daten wie folgt aussieht:
'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" ...
Ich kann scheinbar nichts falsches mit meiner Formel finden. Ich habe überprüft, ob es Fehler gibt, bei denen die Spaltenlänge nicht übereinstimmt, und ich sehe keine fehlenden Klammern, Kommas oder +. Ich habe meinen Code mit einigen meiner Kollegen verglichen, die das mgcv-Paket verwendet haben, aber ich kann das Problem nicht herausfinden. Irgendwelche Vorschläge?
Vielen Dank für jede Hilfe.
Es wäre schön, wenn 'model.frame' diesen Benutzerfehler mit einer informativen Fehlermeldung gefangen. – Roland
@Roland Yup; Ich habe Schüler gehabt, die denselben Fehler gemacht haben. Am besten ist es jedoch, wenn der Fehler, der beim Aufruf von 'TRUE (1)' ausgelöst wird, tatsächlich den Aufruf oder den Aufruf des Benutzers als Funktion enthielt. –
@GavinSimpson Die Fehlermeldung ließ mich einen ganz anderen Teil des Befehls betrachten. Danke für die Hilfe. Das hat das Problem behoben. – ebyrnes24