我使用Rstudio
一个script.R
运行几百行代码,但什么让我很烦,有点比Matlab
是,Rstudio
控制台保持机械显示从我的脚本文件中的每个command line
。有没有办法来防止这种情况发生?防止Rstudio控制台命令
的令人沮丧部分来了,当一个人使用sprintf()
例如,该命令从脚本文件中的行混合起来使用控制台sprintf()
的程度。
最佳,
我使用Rstudio
一个script.R
运行几百行代码,但什么让我很烦,有点比Matlab
是,Rstudio
控制台保持机械显示从我的脚本文件中的每个command line
。有没有办法来防止这种情况发生?防止Rstudio控制台命令
的令人沮丧部分来了,当一个人使用sprintf()
例如,该命令从脚本文件中的行混合起来使用控制台sprintf()
的程度。
最佳,
与ctrl+shift+S
运行代码。或者在script.R
的右上方找到源码,然后运行Source
而不是Source with echo
。而且,对于您要求印刷@Konrad Rudolph建议使用消息message("%f", pi)
是最佳解决方案。
如果打印的消息是为了跟踪代码的状态这里有一些有用的解决方案showing a status message in R
如果你只是想运行script.R
尝试使用source
函数。
source("script.R") # assuming script.R is in your working directory.
此函数将运行脚本而不显示命令行中的所有内容。
像Matlab的sprintf
,R的sprintf
只创建一个字符串,它不会将其打印输出*您必须显式调用print
功能,看什么:
print(sprintf("%f", pi)) # prints
一个普通sprintf
正式创建一个字符串,然后丢弃它,因为它没有被保存到一个变量:
sprintf("%f", pi) # does nothing
然而,这种为你工作,因为REPL(运行R代码里面的一行,时间在命令行)不服从该指令放弃不保存到变量的值,而是打印它们。这是使命令行更容易工作的一种便利方式。你可以输入1+1
并让它打印2
,即使R脚本通常会默默丢弃该值。
将文本打印到控制台的其他功能是cat
和message
,它们各有轻微的不同。查看他们的帮助文件的使用。
*从技术上讲,Matlab将打印任何未被;
终止的语句的值,包括字符串。因此,如果没有分号,那么sprintf
产生的字符串可能会被打印出来,尽管它不是直接由sprintf
完成的,而是由Matlab的通用打印全部行为行为完成的。在我看来,这是一个奇怪的功能。
采购脚本时没有两个选项:Source和Source with Echo?这听起来像你正在点击源与回声。我总是点击普通的Source并没有看到脚本行。 – drhagen
@drhagen:thx突出显示与Echo的区别,尽管我没有点击任何一个。在编写脚本时,我正在使用'ctrl + a',然后'f5'执行它。根据你的反馈,当我点击普通的'Source'时,问题是'sprintf()'没有出现在控制台中。 – owner
这是因为sprintf不打印到命令行;它创建一个字符串。如果你一行一行地运行,REPL会为了方便而打印出纯粹的值(就像一个单纯的'1 + 1'一样),但是采集脚本不会这样做,它只是丢弃它们。在这些'sprintf'周围放置一个'print()'。 – drhagen