我試圖運行使用mgcv包一般的添加劑模式,但我不斷收到一個錯誤model.frame.default:廣義加法模型data.frame.default錯誤:嘗試應用無功能
Error in model.frame.default(formula = Presence ~ Sex + wind_speed + baro + :
attempt to apply non-function
這裏是我使用的代碼(我用「咣噹()」,因爲數據集的大小):
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軟件包的一些同事進行了比較,但我無法弄清楚這個問題。有什麼建議麼?
謝謝你的幫助。
如果'model.frame'抓住了這個用戶的錯誤有更翔實的錯誤消息,這可能是好的。 – Roland
@Roland Yup;我讓學生們犯了同樣的錯誤。也許最好,但是如果調用TRUE(1)時拋出的錯誤實際上包含了調用或者用戶試圖調用的函數。 –
@GavinSimpson錯誤消息讓我看着命令的完全不同的部分。謝謝您的幫助。這解決了問題。 – ebyrnes24