【问题标题】:Hide the in-function plot from R package [duplicate]隐藏R包中的功能图[重复]
【发布时间】:2017-02-23 11:07:06
【问题描述】:

我正在使用 R 包“GeoDE”。当我使用“chdirAnalysis”函数时,会自动绘制一个图形,因为“chdirAnalysis”的源代码中有一个命令“plot”。但我不想那样。我怎样才能阻止这种情况?

类似的问题是隐藏功能内打印的消息,我找到了使用不可见的解决方案

capture.output(value <- function_name(input))

这可以帮助隐藏“function_name”的输出,但此解决方案不适用于绘图。

【问题讨论】:

    标签: r plot package hide in-function


    【解决方案1】:

    选项:

    1. 要求维护者在函数中添加一个plot=FALSE 选项(可能还有一个verbose=FALSE 选项来停止文本输出)。

    2. 编辑chdirAnalysis 的源代码并删除执行绘图的函数调用,或将其隐藏在新的plot=FALSE 选项后面。我认为这是chdirplots,它被调用但不对其返回值做任何事情。如果您在 GeoDE 包源之外执行此操作,则需要将 GeoDE::: 前缀添加到由 chdirAnalysis 调用的任何未导出的 GeoDE 函数(例如 chdirSig)。

    3. 按照其他问题和答案中的说明,将其绘制到某个虚拟或一次性图形设备文件。

    【讨论】:

    • 谢谢@Spacedman。我会这样做为“1”。对于 2,这非常有帮助。由于我尝试将chdirAnalysis 的定义粘贴到我的代码中,并通过删除绘图部分对其进行了修改,但由于它将调用包chdirSig 中的另一个函数,因此我不得不将该函数的定义粘贴到我的代码中。但是GeoDE:::完美的解决了这个问题!对于 3,对不起,但我不明白。
    • (3) 正在做类似pdf(file="/dev/null") 的操作,它会打开一个图形设备,将其输出发送到一个 PDF 文件(在 Linux/Unix 上)该文件无处可去。你甚至可以将它发送到一个真实的文件中,比如t = tempfile();pdf(file=t); doplotstuff(...); dev.off();file.remove(t),而这不会在屏幕上进行。
    • 学到了新东西。谢谢!
    猜你喜欢
    • 2011-06-17
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2010-09-13
    • 2010-09-23
    • 2020-06-01
    • 2018-09-03
    相关资源
    最近更新 更多