阻止Rstudio控制台显示脚本命令

时间:2016-02-09 13:48:06

标签: r rstudio

我正在使用script.RRstudio运行数百个代码行,但与Matlab相比让我感到恼火的是Rstudio控制台保持机械地显示我的脚本文件中的每个command line。有没有办法防止这种情况发生?

令人沮丧的部分,例如当一个人使用sprintf()时,来自脚本文件的命令行与控制台中的sprintf()混合在一起。< / p>

最佳,

4 个答案:

答案 0 :(得分:8)

使用ctrl+shift+S运行您的代码。或者转到script.R右上角的来源,然后只运行Source而不是Source with echo。而且,至于您对打印@Konrad Rudolph的要求,建议使用消息message("%f", pi)是最佳解决方案。

如果打印邮件旨在跟踪代码的状态,请参考以下一些有用的解决方案showing a status message in R

答案 1 :(得分:1)

与Matlab的sprintf一样,R的sprintf只创建一个字符串,它不会将其打印到输出。*您必须显式调用print函数才能看到任何内容:< / p>

print(sprintf("%f", pi)) # prints

普通sprintf正式创建一个字符串,然后丢弃它,因为它没有保存到变量中:

sprintf("%f", pi) # does nothing

但是,这种方法对你有用,因为REPL(一次运行一行R代码的命令行)违反了指令以丢弃未保存到变量的值,而是打印它们。这是一个方便的事情,使它更容易在命令行工作。您可以键入1+1并让它打印2,即使R脚本通常会默默地丢弃该值。

将文本打印到控制台的其他功能是catmessage,它们各自略有不同。请参阅他们的帮助文件以供使用。

*从技术上讲,Matlab将打印任何未被;终止的语句的值,包括字符串。因此,如果没有分号,sprintf产生的字符串可以打印,虽然它不是由sprintf直接完成,而是由Matlab的通用打印所有事物行为。在我看来,这是一个奇怪的功能。

答案 2 :(得分:1)

只需将您要从控制台抑制的代码行放在()之间:

1+1
output looks:
> 1+1
[1] 2

(1+1)
output looks:
> [1] 2

答案 3 :(得分:0)

如果您只想运行script.R,请尝试使用source功能。

source("script.R") # assuming script.R is in your working directory.

此函数将运行脚本,而不会在命令行中显示所有内容。