如何确定函数是否生成图形

csg*_*pie 7 graphics r

有没有办法确定函数是否在R中生成一个数字?

例如,如果我们有函数fg

f = function(x,y){plot(x,y)}
g = function(x,y){mean(x*y)}
Run Code Online (Sandbox Code Playgroud)

我想能跑

createFigure(f(x,y))#Returns TRUE
createFigure(g(x,y))#Returns FALSE
Run Code Online (Sandbox Code Playgroud)

谢谢

had*_*ley 20

makes_plot <- function(x) {
  before <- .Internal(getSnapshot())
  force(x)
  after <- .Internal(getSnapshot())
  !identical(before, after)
}

makes_plot(mean(1:10))
makes_plot(plot(1:10))
Run Code Online (Sandbox Code Playgroud)

.getSnapshot通过查看源代码发现了该函数recordPlot().