禁用R中的打印显示

禁用R中的打印显示,r,plot,R,Plot,我正试图关闭R中绘图的显示 我读了,但给出的唯一解决方案是将绘图写入文件 如果我不想污染工作区怎么办?如果我没有写权限怎么办? 我尝试了选项(device=NULL),但没有成功 上下文是包NbClust:我想要NbClust()返回的内容,但我不想显示它的绘图 提前谢谢 编辑:下面是一个可复制的示例,使用来自Crattle软件包的数据:) 数据(葡萄酒,包装=“嘎嘎声”) df幸运的是,NbClust似乎是一个巨大的凌乱函数,其中包含一些其他函数和许多看起来很恶心的代码。绘图在两个位置之一进行

我正试图关闭R中绘图的显示

我读了,但给出的唯一解决方案是将绘图写入文件

如果我不想污染工作区怎么办?如果我没有写权限怎么办? 我尝试了
选项(device=NULL)
,但没有成功

上下文是包
NbClust
:我想要
NbClust()
返回的内容,但我不想显示它的绘图

提前谢谢

编辑:下面是一个可复制的示例,使用来自Crattle软件包的数据:)

数据(葡萄酒,包装=“嘎嘎声”)

df幸运的是,
NbClust
似乎是一个巨大的凌乱函数,其中包含一些其他函数和许多看起来很恶心的代码。绘图在两个位置之一进行

创建NbClust的副本:

> MyNbClust = NbClust
然后编辑此函数。将标题更改为:

MyNbClust <-
    function (data, diss = "NULL", distance = "euclidean", min.nc = 2, 
              max.nc = 15, method = "ward", index = "all", alphaBeale = 0.1, plotetc=FALSE) 
{
同样,在1610线附近。拯救现在使用:

 nc = MyNbClust(...etc....)
除非添加
plotetc=TRUE
,否则不会看到任何绘图


然后让开发者加入你的补丁

您可以将通话结束

pdf(file = NULL)


这会将所有输出发送到一个空文件,该文件会有效地隐藏它。

给出一个可复制的示例<当我运行
帮助(NbClust)
中的第一个示例时,code>NbClust
不会生成图形。您是否有权使用
tempfile()
创建临时文件?我在一个可复制的示例中编辑:)我只是查看了tempfile(),谢谢!写入tmp目录似乎是关闭绘图显示的一个好选择。这台机器是什么操作系统?是否可以写入空设备(windows中的NUL或linux中的/dev/NULL?)如果可以,则可以直接在那里输出。生成图形而不提供不生成图形的选项是非常糟糕的。我会要求开发者提供一个
plot=FALSE
选项。第1610行?这个功能有多大。。。检查NbClust。哦,天哪,我猜你是用grep来查找绘图命令的,因为我希望你没有搜索整个函数。是的,在我的编辑器中搜索就成功了。这一切都在一个函数中的好处是,不必担心用户空间副本找不到包中未报告的内容。。。
 nc = MyNbClust(...etc....)
pdf(file = NULL)
dev.off()