R 대화형 창 사용Working with the R Interactive Window

RTVS(Visual Studio용 R 도구)는 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를 누르거나 마우스 오른쪽 단추를 클릭하고 대화형으로 실행을 선택하면 코드를 직접 입력한 것처럼 코드가 대화형 창에서 한 줄씩 실행됩니다.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. 붙여넣은 코드는 한 줄씩 입력된 것처럼 실행됩니다.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 도구 > 세션R 도구 > 작업 디렉터리 메뉴에서(또는 언급된 대로) 사용할 수도 있습니다.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.
지우기 단추 지우기Clear 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 도구 > 세션 > 다른 이름으로 작업 영역 저장... 명령을 사용하면 위치 및 파일 이름(기본 확장은 .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 도구 > 세션 > 작업 영역 로드...를 사용하고 작업 영역 파일로 이동합니다.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 도구 > 세션 > 다시 설정을 선택하면 세션 컨텍스트가 지워집니다.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 도구 > 작업 디렉터리 메뉴 및 프로젝트 상황에 맞는 메뉴에 제공되는 다양한 명령을 사용하여 간편하게 작업 디렉터리를 소스 파일 위치, 위치나 프로젝트 또는 기타 임의 위치로 설정할 수 있습니다.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. 이때 화살표 키는 맨 위 또는 맨 아래에 도달할 때까지 해당 코드 블록을 한 줄씩 탐색합니다.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)
}