在函数中使用levelplot非常奇怪:
> foo <- function() { require(lattice); levelplot(matrix(rnorm(100),10,10)) }
> bar <- function() { require(lattice); levelplot(matrix(rnorm(100),10,10)); return(1) }
> foo() ## graph gets generated
Loading required package: lattice
> graphics.off()
> bar() ## NO GRAPH GETS GENERATED
[1] 1
foo()按预期工作,bar()不生成任何绘图。有什么想法吗?
答案 0 :(得分:1)
默认情况下,该函数返回最后生成的对象。在函数foo
中,这是情节。在功能bar
中,它是1
。
如果要生成绘图和返回另一个对象,则必须使用print
创建绘图。
bar <- function() {
require(lattice);
print(levelplot(matrix(rnorm(100),10,10)));
return(1) }
当您致电bar()
时,将创建情节并返回1
。