我在尝试在R中绘制gam对象时看到错误消息:
Error in 1:object$nsdf : argument of length 0
Run Code Online (Sandbox Code Playgroud)
我正在使用基本命令:
plot(myGamObject)
Run Code Online (Sandbox Code Playgroud)
此错误并非特定于我正在使用的任何数据,因为它也会在例程结束时出现:
example(gam)
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里有一些示例代码:
library(ISLR)
library(gam)
gam7 <- gam(wage~lo(year, span = 2) + s(age, 4) + maritl + education + health_ins + health + jobclass, data = Wage)
plot(gam7)
Run Code Online (Sandbox Code Playgroud)
这是我的系统:
sysname release version nodename
"Windows" ">= 8 x64" "build 9200" "MEANMACHINE4"
machine login user effective_user
"x86-64" "Julian" "Julian" "Julian"
Run Code Online (Sandbox Code Playgroud) 我正在阅读“R 中的应用程序统计学习简介”(ISLR),我被困在第 295 页上的一部分,即广义加性模型实验室。当我运行以下代码时,出现错误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")
Run Code Online (Sandbox Code Playgroud)
书上说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")