从R函数内部写入文件

时间:2019-02-14 10:35:44

标签: r

我想从R中的函数内部写入文件。将工作代码放在函数内部时,没有出现任何错误,但是没有创建文件

一个最小的例子


# Make a simple plot 

plot(1:15) # make plot
p <- recordPlot() # assign plot
p # view plot


# Write the plot to a file (this works)

filename <- "myfile.png"
png(filename)
p
dev.off()


# Move the same code inside a function and call it

write_file <- function(my_plot) {
  filename <- "myfile.png"
  png(filename)
  my_plot
  dev.off()

}

write_file(p) 
# Nothing errors, but no file is created

到目前为止我已经尝试过的

我认为函数可能无法访问图对象。但是它似乎可以从函数中调用它,所以这似乎不是问题(尽管我不确定100%)


plot.new() # clears plot area
function_access_plot <- function(plot_object) {
  plot_object
}
function_access_plot(p)
# This successfully displays the plot

1 个答案:

答案 0 :(得分:2)

除非有抢占,否则建议的临时文件可以写入,但您永远不要写入,因为仅说明从recordPlot()返回的值不会写入当前设备。如果您这样修改功能:

write_file <- function(my_plot) {
  filename <- "myfile.png"
  png(filename)
  replayPlot(my_plot)
  dev.off()
}

对我有用。