簡體   English   中英

防止 Rstudio 控制台顯示腳本命令

[英]Prevent Rstudio console from showing script commands

我正在使用Rstudioscript.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 腳本通常會以靜默方式丟棄該值。

其他將文本打印到控制台的函數是catmessage ,它們都略有不同。 有關用法,請參閱他們的幫助文件。

* 從技術上講,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM