我想编写一个函数来估计具有因子变量的 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/