有没有办法确定函数是否在R中生成一个数字?
例如,如果我们有函数f和g
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().