比如说,我有一个这样的GAM:
# Load library
library(mgcv)
# Load data
data(mtcars)
# Model for mpg
mpg.gam <- gam(mpg ~ s(hp) + s(wt), data = mtcars)现在,我想用ggplot2来绘制GAM。因此,我使用plot.gam生成所需的所有信息,如下所示:
foo <- plot(mpg.gam)这也会产生一个不需要的数字。(是的,我意识到我在抱怨一个绘图函数策划了一些事情.)当以同样的方式使用visreg时,我只需指定plot = FALSE来抑制这个数字,但是plot.gam似乎没有这个选项。我的第一个想法也许是invisible会做这项工作(例如,invisible(foo <- plot(mpg.gam))),但这似乎行不通。有没有一个简单的方法来做到这一点,而不输出不想要的数字文件?
发布于 2017-09-21 14:01:11
好吧,我在发这篇文章5分钟后终于想出来了。有一个选项可以选择绘制哪个术语(例如,select = 1是第一个术语,select = 2是第二个),尽管默认行为是绘制所有术语。但是,如果我使用select = 0,它不会绘制任何内容,也不会给出错误,但是返回完全相同的信息。看看这个:
# Load library
library(mgcv)
# Load data
data(mtcars)
# Model for mpg
mpg.gam <- gam(mpg ~ s(hp) + s(wt), data = mtcars)
# Produces figures for all terms
foo1 <- plot(mpg.gam)
# Doesn't produce figures
foo2 <- plot(mpg.gam, select = 0)
# Compare objects
identical(foo1, foo2)
[1] TRUE好样的!
https://stackoverflow.com/questions/46345546
复制相似问题