RおよびRStudioでコンソールをクリアする関数


319

Rにコンソールをクリアする関数があるかどうか疑問に思っています。特にRStudioでは、キーボードショートカットではなく、コンソールに入力できる関数を探しています。

2010年から、誰かがこのStackExchangeの投稿ですでにそのような機能を提供しています。残念ながら、これはRComパッケージに依存しており、Mac OS Xでは動作しません。


これは、正確な複製ではありませんが、それはかなり高度関連だと、この質問に対する答えは、以下に与えられた- stackoverflow.com/questions/8421005/...
Dason

私が開発clcしたこのスクリプトclc.Rでのみ入力します。どのように機能しますか?clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f")。最後の行はRStudioに対応していますが、ターミナルではに変更してくださいprint.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H"))clc.Rは、より多くの詳細が含まれています。
HubertRonald

回答:


545
cat("\014")  

CTRL+ Lをコンソールに送信するためのコードであるため、画面がクリアされます。

大量の返品を送信するよりもはるかに優れています。


14
これは、私のインタラクティブターミナル(UbuntuとMac OSXの両方)に1行の空白行を印刷するだけです
スコットリッチー

2
私のために働く。これは、Rstudioの非常に遅いコンソールのバグにも役立ちます。
ルーベン2013年

10
MacのRStudioでは機能しますが、R.appでは機能しません。R.appでは、コマンドCmd + Alt + LはCtrl + Lではなく画面をクリアします...そのキーの組み合わせをR.appに送信するための同様の「コード」はありますか?(私は\ 014がフォームフィードのASCIIコードであることを確認しているため、キーの組み合わせではなくフォームフィードコマンドのみを送信しているため、Cmd + Alt + Lの「コード」が存在することはほとんどありません。)
ヨハン

2
私にはうまくいきません。Windows 7、Rコンソール。(r.exe)。
あまり知られていない

7
これはWindowsのRStudioでのみ機能し、「通常の」RコンソールやDOSコンソールでは機能しません。レコードの場合、これはフォームフィード文字でもあり、単にと入力できますcat("\f")

103

デフォルトのRコンソールを使用している場合、キーの組み合わせOption+ Command+でLコンソールがクリアされます。


20
ちょうどあなたがそれが「私」、私のような:)だと思った場合はCTRL-L
ニール・マクギガン

5
OSX Yosemite上のRstudioでもCtrl +L。
ThinkBonobo 2015

7
これは質問の答えにはなりません。OPは機能を必要としており、キーボードショートカットではないと明確に述べています。
デモンゴレム2016


24

Ubuntuの-Gnomeの、単に押すCTRL+は、L画面をクリアする必要があります。

これはWindows 10および7とMac OS X Sierraでもうまく機能するようです。


23

cat("\f")より覚えやすいかもしれませんcat("\014")

私はWindows 10で問題なく動作します。


19

shell("cls") Windowsの場合

shell("clear") LinuxまたはMacの場合。

shell()コマンド(または任意の文字列)をホスト端末に渡します。)


1
これはうまくいきました。他の答えほどエレガントではありませんが、覚えるのははるかに簡単です。
Martini Bianco

2
これは、Windows 10のRtermコンソールで機能した唯一のコマンドです...しかし、これらすべてを入力するのに苦労しました...
Michael Szczepaniak

うん、それが私がそれを学んだ理由です。私はWindows 10でRターミナルも使用します(RStudioをロードするよりもはるかに簡単です)。そして、シェルにコマンドを渡すことができると便利です。Rには、一連の文字を特定のコマンドに「マップ」する方法があると思いますが、具体的な方法は思い出せません。bashのエイリアスのように思えるか、それともそれ以上のものかと思います関数のようですが、タイピングの量を減らすためにそれを行うことができます。(例えば、私のような何かどこでそれを設定することができると思うclr()かはclr、コマンドを実行しますshell("cls")shell("clear")。)
ライアン・ブランチャード

1
同様に、これはRStudioと私のWindows 7シェル(cmd.exe)ウィンドウの両方で機能する唯一のものでした。私が追加した.Rprofileへ: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
これは、WindowsのVisual Studio Codeのターミナルで機能します。
ビルウォリス

12

私はこれを行うRパッケージを、上記の提案を借りて開発しました。パッケージはmise「mise en place」のようにと呼ばれます。あなたはそれをインストールして実行することができます

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

mise()デフォルトでは、すべての変数と関数が削除され、すべての数値が閉じられることに注意してください。コンソールをクリアするには、を使用しますmise(vars = FALSE, figs = FALSE)


12

ここに関数があります:

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

その後、他のR関数を呼び出すのと同じように、単純にそれを呼び出すことができますclear()

あなたが単にタイプすることを好むならばclearclear()すなわち、括弧でタイプする必要がある代わりに)、あなたはそうすることができます

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

2
\014アプローチと非常によく似ていますが、このアプローチでは(Windows 10マシンのRコンソールから)面白いキャラクターが得られます。
デモンゴレム16

\ 014(または\ f)とは異なり、これはRtermのWindows 10で動作しました。
Martini Bianco

@MartiniBianco:ここでの回答が役立つと思います。基本的に「\ 033」は「ESC」です。「[2J」と「[0; 0H」はそれぞれ画面をクリアし、カーソルを左上に移動します。
jvd10



3

Linuxではsystem("clear")、画面をクリアするために使用します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.