[英]Prevent Rstudio console from showing script commands
我正在使用Rstudio
從script.R
運行數百個代碼行,但與Matlab
相比讓我有點Rstudio
是, Rstudio
控制台不斷機械地顯示我的腳本文件中的每個command line
。 有沒有辦法防止這種情況發生?
令人沮喪的部分來了,例如,當使用sprintf()
,腳本文件中的命令行與控制台中的sprintf()
混淆。
最好的事物,
使用ctrl+shift+S
運行您的代碼。 或者轉到script.R
右上角的script.R
,然后只運行Source
而不是Source with echo
。 而且,至於您對打印 @Konrad Rudolph 的要求,建議使用 message message("%f", pi)
是最好的解決方案。
如果打印消息是為了跟蹤代碼的狀態,這里有一些有用的解決方案在 R 中顯示狀態消息
與 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 的通用打印所有事物行為完成的。 在我看來,這是一個奇怪的功能。
如果您只想運行script.R
嘗試改用source
函數。
source("script.R") # assuming script.R is in your working directory.
此函數將運行腳本而不顯示命令行中的所有內容。
只需將您想要從控制台抑制的代碼行括在 () 之間:
1+1
output looks:
> 1+1
[1] 2
(1+1)
output looks:
> [1] 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.