R 対話型ウィンドウの使用Working with the R Interactive Window

R Tools for Visual Studio (RTVS) では R 対話型ウィンドウが提供されます。これは REPL (Read-Evaluate-Print-Loop) ウィンドウとも呼ばれ、R コードを入力してすぐに結果を確認できます。R Tools for Visual Studio (RTVS) provides an R interactive window, also known as a REPL (Read-Evaluate-Print-Loop) window, in which you can enter R code and immediately see the results. 対話型ウィンドウでは、IntelliSense だけでなく、すべてのモジュール、構文、および変数を使用できます。All modules, syntax, and variables, as well as IntelliSense, is available in the interactive window.

また、対話型ウィンドウは通常の R エディター ウィンドウと統合されます。The interactive window is also integrated with regular R editor windows. コードを選択して Ctrl + Enter キーを押すか右クリックして [対話形式で実行] を選択することができます。コードは、直接入力した場合と同じように、対話型ウィンドウで 1 行ずつ実行されます。You can select code and press Ctrl+Enter, or right-click and select Execute in Interactive, and the code is run line-by-line in the interactive window as if you typed it directly. カーソルがエディター ウィンドウの単一行にある状態で Ctrl + Enter キーを押すと、その行は対話型ウィンドウに送信されてから、カーソルが次の行に移動します。When the cursor is on a single line in an editor window, Ctrl+Enter sends that line to the interactive window and then moves the cursor to the next line. このように Ctrl + Enter キーを繰り返し押すだけで、コードをステップ スルーできます。This way you can just press Ctrl+Enter repeatedly to step through the code.

これらの機能を利用するには、「R の概要」チュートリアルと以下のセクションに従います。To experience these features, follow the Getting Started with R walkthrough as well as the following sections:

コード スニペットは、R エディター ウィンドウの場合と同じように対話型ウィンドウでも機能します。Code snippets also work in the interactive window like they do in R editor windows.

対話型ウィンドウの概要Overview of the Interactive Window

次のように、有効な R コードを入力し、行の最後で Enter キーを押すと、その行でコードが実行されます。Typing valid R code and pressing Enter at the end of the line runs the code on that line:

> 3 + 3
[1] 6

また、入力した単一行の任意の場所で Enter キーを押すと、その行が実行されます。Pressing Enter anywhere on a single-line input also runs that line.

REPL での以前の入力と出力はすべて読み取り専用となり、変更できません。All previous input and output in the REPL is read-only and cannot be changed. ただし、ウィンドウからはいつでもテキストを選択してコピーおよび貼り付けることができます。However, you can select and copy text from the window at any time, as well as pasted. 貼り付けられたコードは、1 行ずつ入力した場合と同じように実行されます。Pasted code runs as if it were entered line by line.

つまり、ステートメントの入力を開始し、Enter キーを押すと、RTVS はステートメントを続行する必要があるタイミングを認識し、左の適切なインデントで + プロンプトを使用して複数行モードを入力します。That is, when you start typing a statement and press Enter, RTVS knows when the statement must be continued and enters multi-line mode with a + prompt on the left and the appropriate indentation. また、RTVS は次のようにかっこ、角かっこ、および中かっこも入力します。RTVS also completes parentheses, brackets, and curly braces:

対話型ウィンドウの複数行のステートメント エントリ

この複数行モードで Enter キーを押した場合にコード ブロックが実行されるのは、ブロックの末尾にある場合のみです。それ以外の場合は、改行が挿入されます。In this multi-line mode, the Enter key runs the code block only when positioned at the end of the block, otherwise it inserts a new line. ただし、任意の位置で Ctrl + Enter キーを押せば、そのコード ブロックをすぐに実行できます。However, you can press Ctrl+Enter at any position to run that code block immediately.

ツール バー コマンドToolbar commands

対話型ウィンドウとそのツールバーを以下に示します。Here is the interactive window with its toolbar:

対話型ウィンドウとツール バー

ツール バー コマンドは次のとおりです。そのほとんどに対応するキーボードがあり、[R Tools]、[セッション] および [R Tools]、[作業ディレクトリ] メニュー (または前述のとおり) でも使用可能です。The toolbar commands are as follows, most of which have keyboard equivalents and are also available on the R Tools > Session and R Tools > Working Directory menus (or as noted):

ボタンButton コマンドCommand キーの組み合わせKey combination 説明Description
[リセット] ボタン リセットReset Ctrl + Shift + F10Ctrl+Shift+F10 すべての変数と履歴を消去し、対話型ウィンドウ セッションをリセットします。Resets the interactive window session, clearing all variables and history.
[クリア] ボタン ClearClear Ctrl + LCtrl+L 対話型ウィンドウに表示されている出力を消去します。セッション変数や履歴には影響しません。Clears the output shown in the interactive window; does not affect session variables or history.
[履歴] ボタン 過去の履歴コマンドPrevious History Command
次の履歴コマンドNext History Command
↑、↓Up, Down
Alt + ↑、Alt + ↓Alt+Up, Alt-Down
複数行コード ブロックの特定の動作で、履歴をスクロールします。Scrolls through the history, with certain behaviors for multi-line code blocks. 履歴」を参照してください。See History.
[ワークスペースの読み込み] ボタン ワークスペースの読み込みLoad Workspace N/An/a 以前に保存したワークスペースを読み込みます (「ワークスペースとセッション」を参照)。Loads a previous saved workspace (see Workspaces and sessions.
[作業状態の保存] ボタン 作業状態の保存Save Workspace As N/An/a セッションの現在の状態をワークスペースとして、保存します (「ワークスペースとセッション」を参照)。Saves the current state of the session as a workspace (see Workspaces and sessions.
[R スクリプトのソース化] ボタン R スクリプトのソース化Source R Script Ctrl + Shift + SCtrl+Shift+S Visual Studio エディターで現在アクティブな R スクリプトを使用して source を呼び出します。これにより、コードが実行されます。Calls source with the currently active R script in the Visual Studio editor, which runs the code. このボタンは、R ファイルが Visual Studio エディターで開いている場合にのみ表示されます。This button appears only when an R file is open in the Visual Studio editor.
[エコーによる R スクリプトのソース化] ボタン エコーによる R スクリプトのソース化Source R Script with Echo Ctrl + Shift + EnterCtrl+Shift+Enter [R スクリプトのソース化] と同じですが、対話型ウィンドウにはスクリプトのコンテンツが表示されます。Same as Source R Script but displays the script's contents in the interactive window.
[R の割り込み] ボタン R の割り込みInterrupt R EscEsc このセクションの冒頭で示したスクリーンショットの while ループなど、対話型ウィンドウで実行中のコードを停止します。Stops any running code in the interactive window, such as the while loop in the screenshot shows at the beginning of this section.
[デバッガーのアタッチ] ボタン デバッガーのアタッチAttach Debugger N/An/a [デバッグ]、[R インタラクティブ型に接続] コマンドを使用することもできます。Also available using the Debug > Attach to R Interactive command.
[作業ディレクトリをソース ファイルの場所に設定] ボタン 作業ディレクトリをソース ファイルの場所に設定Set Working Directory to Source File Location Ctrl + Shift + ECtrl+Shift+E 対話型ウィンドウに最後に読み込まれたソース ファイルに作業ディレクトリを設定します (source を使用)。Sets the working directory to the most recently sourced file loaded to the interactive window (using source). 作業ディレクトリ」を参照してください。See Working directory.
[作業ディレクトリをプロジェクトの場所に設定] ボタン 作業ディレクトリをプロジェクトの場所に設定Set Working Directory to Project Location Ctrl+Shift+PCtrl+Shift+P Visual Studio に現在読み込まれているプロジェクトのルートに作業ディレクトリを設定します。Sets the working directory to the root of the currently loaded project in Visual Studio. 作業ディレクトリ」を参照してください。See Working directory.
(テキスト フィールド)(Text field) 作業ディレクトリの選択Select Working Directory N/An/a 作業ディレクトリの直接入力フィールド。Direct input field for the working directory. 作業ディレクトリ」を参照してください。See Working directory.

ワークスペースとセッションWorkspaces and sessions

対話型ウィンドウでコードを実行すると、現在のセッションでコンテキストが作成されます。Running code in the interactive window builds up a context in your current session. コンテキストはグローバル変数、関数定義、ライブラリの読み込みなどで構成されます。The context is composed of global variables, function definitions, library loads, and so forth. このコンテキストはまとめてワークスペースと呼ばれます。ワークスペースはいつでも保存して読み込むことができます。This context is collectively called a workspace, and you can save and load workspaces at any time.

[作業状態の保存] ボタンを選択するか、[R Tools]、[セッション]、[作業状態の保存...] コマンドを使用すると、場所とファイル名 (既定の拡張子は .RData) の入力が求められます。Selecting the Save Workspace As button or using the R Tools > Session > Save Workspace As... command prompts you for a location and filename (default extension is .RData).

特定のファイル名 (既定値は .RData) を使用してワークスペースを保存するには、REPL で [作業状態の保存] ボタンをクリックします。To save a Workspace using a specific filename (the default is .RData), click on the Save Workspace button in the REPL:

以前に保存したワークスペースを再読み込みするには、[ワークスペースの読み込み] ボタンを選択するか [R Tools] > [セッション] > [ワークスペースの読み込み...] を使用して、ワークスペース ファイルに移動します。To reload a previously saved workspace, select the Load Workspace button or use R Tools > Session > Load Workspace... and navigate to the workspace file.

[リセット] ボタンまたは [R Tools]、[セッション]、[リセット] を使用すると、セッション コンテキストが消去されます。The Reset button or R Tools > Session > Reset clears the session context. リモート セッションを使用している場合、リセットによりリモート コンピューター上のユーザー プロファイルも削除され、そこに格納されているすべてのファイルが消去されます If you're using a remote session, resetting also deletes the user profile on the remote machine to clear off all files stored there. (「ワークスペース」を参照)。(See Workspaces.)

作業ディレクトリWorking Directory

開発者は通常、対話型セッション中に作業ディレクトリの変更が必要になります。Developers commonly want to change their working directory while in an interactive session. ツール バー、[R Tools]、[作業ディレクトリ] メニュー、およびプロジェクト コンテキスト メニューで使用可能なさまざまなコマンドを使用することで、ソース ファイルの場所、プロジェクトの場所、またはその他の任意の場所に作業ディレクトリを簡単に設定することができます。Various commands, available on the toolbar, the R Tools > Working directory menu, and the project context menu allows you to easily set a working directory to the location of a source file, the location or your project, or any other arbitrary location. そうすることで、ファイルの参照時に絶対パス名や長い相対パス名を入力せずに済みます。Doing so helps you avoid typing out full pathnames or lengthy relative pathnames when referring to files.

履歴History

対話型ウィンドウに入力するすべての行にはエディターから送信される行が含まれ、REPL の履歴に保持されます。Every line you enter in the interactive window, includes lines sent from an editor, are preserved in the REPL's history. その後、おそらくコマンド ラインで慣れている上下方向キーを使用して履歴を移動することができます。You can then navigate through history with the Up and Down arrow keys, as you are likely accustomed to on the command line.

ただし、現在の行で入力を開始して、上方向キーを押した場合、その現在の行は、まだ実行していない場合でも履歴に保持される点が異なります。One difference is that if you start typing on the current line and press Up, that current line is preserved in your history even through you haven't run that line yet.

対話型ウィンドウ内の履歴は、複数行にまたがる他のコード ブロックのステートメントでもインテリジェントに機能します。History in the interactive window also works intelligently with statements of other code block that span lines. 上下方向キーで履歴を循環すると、複数行のコード ブロックが単位全体として取得され、現在のエントリとして表示されます。When cycling through history with the Up and Down arrow keys, multi-line code blocks are retrieved as a whole unit and shown as the current entry. この時点で、方向キーを使用して、先頭または最後に到達するまで 1 行ずつそのコード ブロックを移動します。At this point, the arrow keys navigate through that code block line by line, until the top or bottom is reached. コード ブロックの先頭では、上方向キーを使用して履歴内の前の項目を取得します。最後の行では、下方向キーを使用して次の項目を取得します。At the top of the code block, the up arrow retrieves the previous item in the history; at the bottom line, the down arrow retrieves the next item.

この動作は、上方向キーと Enter キーストロークを組み合わせて使用し、履歴の最後の項目を再実行する一般的なケースの場合です。当然ながら、上方向キーを押して複数行のコード ブロックに移動することで編集可能となります。This behavior accommodates the typical case of rerunning the last item in the history with an Up arrow and Enter keystroke combination, while naturally allowing for editing of a multi-line code block by pressing the Up arrow to navigate into it.

複数行のコード ブロックに移動しないようにする場合は、ツール バーのボタンを使用するか、Alt + ↑ キーおよび Alt + ↓ キーを使用します。この場合、すべてのブロックが単一行として扱われます。To avoid navigating into multi-line code blocks, use the toolbar buttons or Alt+Up and Alt-Down, and all such blocks are treated as a single line.

履歴機能を理解する最も簡単な方法は、対話型ウィンドウで試してみることです。The easiest way to experience the history features is to try them for yourself in the interactive window. 次のコードには、いくつかの適切な単一行のステートメントと複数行のステートメントが示されています。The code below provides several suitable single- and multi-line statements. ただし、適切な履歴を作成するには、各ステートメントでコピー/貼り付けを使用します Use copy-paste with each statement individually, however, to create the appropriate history. (コードを別のコード ファイルに貼り付けてから、Ctrl + Enter キーを使用して対話型ウィンドウに行を送信することもできます)。(You can also paste the code into a separate code file and then send the lines to the interactive window with Ctrl+Enter.)

3 + 3

4 + 4

5 + 5

add <- function (x, y) {
  return (x + y)
}

sub <- function (x, y) {
  return (x - y)
}