r - 来自 mgcv 的 plot.gam with all.terms = TRUE 在一个函数中

标签 r mgcv

我想编写一个函数来估计具有因子变量的 gam 并绘制所有变量的结果,包括因子变量。但是,mgcv 包中的 plot 函数会产生错误。为什么会出现此错误,我该如何解决?

library(mgcv)
plot_model <- function(x){
  agam <- gam(mean ~ s(bla) + bla2, data=x)
  plot(agam, pages=1, all.terms = TRUE)
   # here Error in eval(expr, envir, enclos) : object 'x' not found
}
bla <- data.frame(bla=rnorm(20), bla2=sample(letters[1:4], size=20, replace=T), 
                  mean=sample(20))
plot_model(bla)
# Error in eval(expr, envir, enclos) : object 'x' not found 

最佳答案

显然,x 需要在本地环境中声明,以便 plot.gam 可以将其用于绘图。您可以按如下方式使其工作:

library(mgcv)
plot_model <- function(y){
  data <- y
  agam <- mgcv::gam(mean ~ s(bla) + bla2, data=data)
  mgcv::plot.gam(x = agam, pages=1, all.terms = TRUE)
  # here Error in eval(expr, envir, enclos) : object 'x' not found
}
dat <- data.frame(bla=rnorm(20), bla2=sample(letters[1:4], size=20, replace=T), 
                  mean=sample(20))
plot_model(dat)

关于r - 来自 mgcv 的 plot.gam with all.terms = TRUE 在一个函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918662/

相关文章:

r - rgl 曲面图的颜色随高度 (z) 变化

r - 无法在 R Markdown 中使用 Rcpp 引擎

r - Julia 相当于 R 的 qnorm()?

graphics - 指定绘图的宽度和高度

r - 单独更改 GAM 图的选项?

r - 缺少参数时的 S3 方法分派(dispatch)

r - 是否可以在 mgcv gam 模型中包含两个平滑项的乘积

R:mgcv 将颜色条添加到 GAM 的 2D 热图中

r - 从 gam 图中保存数据而不实际绘制数据?

r - 如何使用等高线图和瓦片图可视化 GAM 结果(使用 ggplot2)