验证码:
example <- function(x, y){
Plot <- plot(x, y)
return(list(Plot = Plot, Mean = c(mean(x), mean(y))))
}
set.seed(1)
x <- rnorm(10)
set.seed(2)
y <- rnorm(10)
example(x, y)
每次我们调用函数example(x, y)
时,图就会出来。当我调用函数example(x, y)
时,我怎么可能不打印图,但在需要时可以通过example(x, y)$Plot
获取图?
谢谢!
2条答案
按热度按时间xqnpmsa81#
一个更复杂的解决方案是使用S3分派,这样当您查看整个输出时,您只能看到plot调用,但当您查看plot对象时,您会得到绘制的实际图。这需要你的main函数和两个print方法:
这会产生以下行为:
但是
和
但是
创建于2023-05-08使用reprex v2.0.2
编辑
看起来OP正在寻找一个使用
cowplot
输出多个绘图页面的函数,但用户可以选择访问单个绘图。这可以更容易地完成,这次使用单个print
方法:这允许:
但也允许访问单独的图:
s4n0splo2#
一种简单的方法是添加一个参数,让用户决定是否要在输出中包含绘图。