gpt4 book ai didi

r - 当在 data.table 中链接时,autoplot 将空白图保存到 png 设备

转载 作者:行者123 更新时间:2023-12-04 02:59:50 26 4
gpt4 key购买 nike

我有一个 data.table有一列有一些值的预测,我想用 ggplot2::autoplot 保存每个预测的图.

我正在尝试这个(可重复的例子):

require(data.table)
require(forecast)
require(ggplot2)

## create data.table
a <- data.table(id = 1:2)
a[, x := .(list(sample(1:10, 5, FALSE))), by = id]
a[, y := .(list(forecast(x[[1]]))), by = id]

## plot by id:
a[, {png(paste0(id, ".png")); autoplot(y[[1]]); dev.off()}, by = id]

但它会创建空白 Canvas 。

但是,以下代码有效:
png("1.png")
a[1, autoplot(y[[1]])]
dev.off()

这让我觉得这与 {} 中的命令链有关。 .下一个代码也有效(因为 plot 不适用于预测对象,我正在绘制 x 变量:
a[, {png(paste0(id, ".png")); plot([[1]]); dev.off()}, by = id]

这让我想起了 autoplot .

我做错了什么,有效实现我想要的东西的方法是什么?

最佳答案

没有调查autoplot代码,这两个表达式之间的区别是一个隐藏的 print这发生在第二种情况,因为该表达式返回由 autoplot 创建的对象。 ,然后 R 核心“打印”(对于不同的对象可能意味着不同的东西)。

因此修复是在调用 print你自己:

a[, {png(paste0(id, ".png")); print(autoplot(y[[1]])); dev.off()}, by = id]

关于r - 当在 data.table 中链接时,autoplot 将空白图保存到 png 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50181697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com