我试图运行使用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