我正在学习“使用R进行统计学习应用”的教材(ISLR),但在第295页关于广义可加模型(GAM)的实验中遇到了问题。当我运行以下代码时,出现了错误Error in plot.gam(gam1, se = TRUE, col = "red") : could not find function "plot.gam"
。
library(ISLR)
gam1 = lm(wage ~ ns(year, 4) + ns(age, 5) + education, data=Wage)
par(mfrow=c(1,3))
plot.gam(gam1, se=TRUE, col="red")
这本书说plot.gam
应该是通用plot
函数的一部分,那么为什么R找不到它?我应该做些什么不同的事情吗?我尝试重新下载带有install.packages('plot', repos='http://cran.us.r-project.org')
的绘图库,但没有成功。
这让我感到困惑,因为书上说:
通用的plot()函数识别gam2是gam类的对象,并调用适当的plot.gam()方法。方便的是,即使plot.gam()gam1不是gam类而是lm类,我们仍然可以在它上面使用plot.gam()。图7.11是用以下表达式产生的:
plot.gam(gam1, se=TRUE, col="red")
mgcv
软件包。 - Estherlibrary(mgcv)
,我没有得到相同的错误,但是我得到了Error in if (se && x$Vp[1, 1] < 0) { : missing value where TRUE/FALSE needed
... 这很奇怪,因为书上似乎期望我能够直接使用plot.gam
而不需要导入任何东西。不过早些时候我被告知要导入gam
。 - briennaplot.Gam
吗?请记住,R 是区分大小写的。此外,您可以通过调用methods(plot)
来检查哪些方法适用于常规的plot
(它是一个函数,而不是一个包)。似乎没有适用于 gam 的方法,所以我不确定为什么书上会这样说。 - Estherplot.Gam
可以使用!谢谢 - 我不知道methods()
,非常有用。不知道为什么书上能够使用plot.gam
... - brienna