[英]plot.gam from mgcv with all.terms = TRUE within a function
我想寫一個gam
來估計一個帶有因子變量的游戲並繪制所有變量的結果,包括因子變量。 但是, plot
包中的 plot function 會產生錯誤。 為什么會出現此錯誤,我該如何解決?
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
可以將它用於 plot。您可以按如下方式使其工作:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.