函数用于清除R和RStudio中的控制台

我想知道在R中是否有一个函数来清除控制台,特别是RStudio,我正在寻找一个函数,我可以输入控制台,而不是键盘快捷键。

有人已经在这是2010年的StackExchange帖子中提供了这样的函数。不幸的是,这取决于RCom包,不能在Mac OS X上运行。

552921 次浏览

您可以定义以下函数

clc <- function() cat(rep("\n", 50))

你可以将其调用为clc()

cat("\014")

是将CTRL+l发送到控制台的代码,因此将清除屏幕。

这比发一大堆退货好多了。

如果您正在使用默认的R控制台,组合键选项 + 命令 + l将清除控制台。

Ubuntu-Gnome中,只需按CTRL+l即可清除屏幕。

这似乎也适用于Windows 10、7和Mac OS X Sierra。

cat("\f")可能比cat("\014")更容易记住。

它在Windows 10上运行得很好。

这是一个函数:

clear <- function() cat(c("\033[2J","\033[0;0H"))

那么你可以简单地调用它,就像调用任何其他R函数一样,clear()

如果你更喜欢简单地键入clear(而不是必须键入clear(),即括号),那么你可以这样做

clear_fun <- function() cat(c("\033[2J","\033[0;0H"));
makeActiveBinding("clear", clear_fun, baseenv())

我开发了一个R包来实现这一点,借鉴了上面的建议。这个包被称为mise,就像“mise en place”一样。您可以使用

install.packages("mise")
library(mise)
mise()

注意,mise()默认情况下也会删除所有变量和函数,并关闭所有图形。要清除控制台,请使用mise(vars = FALSE, figs = FALSE)

您可以将以下两个命令组合使用

cat("\014");
cat(rep("\n", 50))

shell("cls")如果在Windows上,

shell("clear")如果在Linux或Mac上。

(shell()将命令(或任何字符串)传递给主机终端。)

如果您正在使用默认R控制台CTRL + l

RStudio - CTRL + l

在linux中使用system("clear")来清除屏幕。

猫(“\ 014”)。这是可行的。不用担心

RStudio的另一个选项是rstudioapi::sendToConsole("\014")。即使输出被转移,这也能工作。

sink("out.txt")


cat("\014") # Console not cleared


rstudioapi::sendToConsole("\014") # Console cleared


sink()