我想保持清楚,并::在各行中使用符号来拟合mgcv::gam。在模型调用中使用符号时,我偶然发现了一件事情mgcv::s。带有可复制示例/错误的代码如下所示。
原因可能是因为我在模型公式中使用了这种表示法,但是我无法弄清楚为什么它不起作用/不允许这样做。这可能是关于语法的非常具体的东西(我想可能不是特定于mgcv的东西),但是也许有人可以帮助我理解这一点以及我对R的理解。预先感谢您。
library(mgcv)
dat <- data.frame(x = 1:10, y = 101:110)
# this results in an error: invalid type (list)...
mgcv::gam(y ~ mgcv::s(x, bs = "cs", k = -1), data = dat)
# after removing the mgcv:: in front of s everything works fine
mgcv::gam(y ~ s(x, bs = "cs", k = -1), data = dat)
# outside of the model call, both calls return the desired function
class(s)
# [1] "function"
class(mgcv::s)
# …Run Code Online (Sandbox Code Playgroud)