我想从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
答案 0 :(得分:2)
除非有抢占,否则建议的临时文件可以写入,但您永远不要写入,因为仅说明从recordPlot()
返回的值不会写入当前设备。如果您这样修改功能:
write_file <- function(my_plot) {
filename <- "myfile.png"
png(filename)
replayPlot(my_plot)
dev.off()
}
对我有用。