gpt4 book ai didi

r - 如何为图形设备设置默认参数?

转载 作者:行者123 更新时间:2023-12-03 23:42:34 24 4
gpt4 key购买 nike

我喜欢阅读黑底白字。所以,在 R 中,我会做一些类似的事情:

par (bg = "black")
par (fg = "ivory1")

我希望默认设置这些选项。然而,人们不会简单地将这些行写在 .Rprofile 中。因为,据我了解,在执行时,图形设备尚未初始化。相反,正如 another answer 中所建议的那样, 应重新分配 options()$device包括必要的选项设置。我没有成功。

这是我尝试过的:
~/.Rprofile
f_device <- options()$device

blackdevice <- function (...) {

f_device(...)

par (bg = "black")
par (fg = "ivory1")
}

options (device = blackdevice)

这里的想法是保存原始 device函数到另一个变量,然后从我的新 device 调用它功能。我得到的是:
Error in f_device(...) : could not find function "f_device"

— 在我运行 plot (something) 时.

我的另一个想法是这样:
~/.Rprofile
.First <- function () {

options(f_device = options()$device)

blackdevice <- function (...) {

options()$f_device(...)

par (bg = "black")
par (fg = "ivory1")
}

options (device = blackdevice)
}

— 分配原始 device options 中的其他地方.但这会导致:
Error in (function (...)  : attempt to apply non-function

我没主意了。你能帮我解决这个问题吗?

最佳答案

您的问题是 device选项尚未设置 .Rprofile被处理。
因此,options()$deviceNULL那时,这会导致您观察到的错误。
.First()函数也会在来自 options("defaultPackages") 的包之前执行已附加,因此会产生相同的错误。

如果你想在 .Rprofile 中放一些东西,它必须是这样的:

setHook(
packageEvent("grDevices", "onLoad"),
function(...) {
f_device <- getOption("device")

blackdevice <- function(...) {
f_device(...)
par(bg = "black")
par(fg = "ivory1")
}

options(device = blackdevice)
}
)

请注意 这是标准 R GUI 的解决方案,但不适用于例如RStudio,设置自己的 "RStudioGD"之后的设备(并要求 grDevices 已加载)。

(这也解释了在 "RStudioGD" 中重新定义 .Rprofile 以使其领先于搜索路径上的 "tools:rstudio" 的尴尬方法(来自您链接的问题)

关于r - 如何为图形设备设置默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839319/

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