Исходя из ответов, есть два решения:
library(ggplot2)
f <- function(n) {
rand <- rnorm(n)
no <- seq_len(n)
df <- data.frame(no=no, rand=rand)
if (n > 10) {
png("plot.png")
print({
p <- ggplot(df)
p + geom_point(aes(x=no, y=rand))
})
dev.off()
}
}
f(11)
Примечание: я знал, что мне нужно использовать print()
, но способ, которым я это попробовал, не сработал, потому что он не был расположен в нужном месте.
Кроме того, я пробовал опцию ggsave
ранее, но это тоже не сработало. Конечно, теперь это работает. Похоже, что оно имеет лучшее разрешение, чем png()
:
library(ggplot2)
f <- function(n) {
rand <- rnorm(n)
no <- seq_len(n)
df <- data.frame(no=no, rand=rand)
if (n > 10) {
p <- ggplot(df)
p + geom_point(aes(x=no, y=rand))
ggsave(file="plot.png")
}
}
f(11)
Спасибо всем.