English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 기본 문법

새 언어를 배우는 일은 일반적으로 "Hello, World!" 프로그램을 출력하는 프로그램으로 시작합니다. R 언어의 "Hello, World!" 프로그램 코드는 다음과 같습니다:

myString <- "Hello, World!"
print ( myString )

위의 예제에서 문자열 "Hello, World!"를 myString 변수에 대입한 후 print() 함수를 사용하여 출력합니다.

주의:R 언어 대입은 왼쪽 화살표 `<`를 사용합니다.- 시그너리, 하지만 일부 새 버전은 등호를 지원합니다. =.

변수

R 언어의 유효한 변수 이름은 알파벳, 숫자 및 점(.) 또는 언어기호(_)로 구성됩니다.

변수 이름은 알파벳 또는 점(.)로 시작해야 합니다.

변수 이름정확한가요?이유
var_name2.정확문자로 시작하며, 알파벳, 숫자, 언어기호(_) 및 점(.)로 구성됩니다.
var_name%에러%는 불법 문자입니다.
2var_name에러숫자로 시작할 수 없습니다.

.var_name,

var.name

정확점(.)로 시작할 수 있지만, 점(.) 뒤에는 숫자를 따를 수 없어야 합니다.
.2var_name에러점(.)로 시작하면 점(.) 뒤에는 숫자를 따를 수 없습니다.
_var_name에러언어기호(_)로 시작할 수 없습니다.

변수 대입

R 언어의 최신 버전의 대입은 왼쪽 화살표 `<`를 사용할 수 있습니다.-、равна、знак равенства = 、правая стрелка -> присвоение:

# использование знака равенства = для присвоения
> var.1 = c(0,1,2,3)           
> print(var.1)
[1] 0 1 2 3
# использование левой стрелки <-присвоение
> var.2 <- c("learn","R")   
> print(var.2)
[1] "learn" "R"
    
# использование правой стрелки <- присвоение
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1

정의된 변수를 확인하려면 ls() функция:

> print(ls())
[1] "var.1" "var.2" "var.3"

변수를 제거하려면 rm() функция:

> rm(var.3)
> print(ls())
[1] "var.1" "var.2"
>

이전 장에서는 R의 프로그래밍 환경을 설치하는 방법을 배웠습니다. 다음으로는 R 언어의 대화형 프로그래밍과 파일 스크립트 프로그래밍을 소개할 것입니다。

대화형 프로그래밍

명령 프롬프트에서 R 명령을 실행하면 대화형 프로그래밍 창에 진입할 수 있습니다:

R

이 명령을 실행하면 R 언어의 해석기가 호출되며 > 기호 뒤에 코드를 입력하면 됩니다。

대화형 명령은 q()를 입력하여 종료할 수 있습니다:

> q()
Save workspace image? [y/n/c]: y

파일 스크립트

R 언어 파일 확장자는 .R입니다。

다음으로 w3codebox-test.R  파일: 코드는 다음과 같습니다:

w3codebox-test.R  파일

myString <- "w3codebox"
print ( myString )

다음은 명령 프롬프트 창에서 Rscript를 사용하여 스크립트를 실행하는 방법입니다:

Rscript w3codebox-test.R

출력 결과는 다음과 같습니다:

[1] "w3codebox"

입력 및 출력

print() 출력

print()는 R 언어의 출력 함수입니다。

다른 프로그래밍 언어와 마찬가지로 R 언어는 숫자, 문자 등을 출력할 수 있습니다。

출력 문장은 매우 간단합니다:

print("w3codebox")
print(123)
print(3e2)

실행 결과:

[1] "w3codebox"
[1] 123
[1] 300

R 언어는 node.js와 Python과 같이 해석형 언어이므로 R 언어를 명령 프롬프트와 같이 사용할 수 있습니다。

하나의 행에 값을 입력하면 R도 그 값을 직접 표준화하여 출력합니다:

> 5e-2
[1] 0.05

cat() 함수

결과의 연결 출력이 필요하다면 cat() 함수를 사용할 수 있습니다:

> cat(1, "сумма", 1, "равна", 2, '\n')
1 сумма 1 равна 2

cat() 함수는 연결된 두 요소 사이에 자동으로 공백을 추가합니다。

파일에 출력 내용

R 언어는 파일에 출력하는 방법이 매우 다양하며 매우 편리합니다。

cat() 함수는 결과를 직접 파일에 출력할 수 있습니다:

cat("w3codebox", file="/사용자/w3codebox/w3codebox-test/r_test.txt")

이 문장은 컨트롤 타블에 결과를 생성하지 않고 대신 "w3codebox"을 \/사용자/w3codebox/w3codebox-test/r_test.txt" 파일에 쓰여집니다。

file 매개변수는 절대 경로나 상대 경로가 될 수 있으며, 절대 경로를 사용하는 것이 좋습니다. Windows 경로 형식은 D:\\r_test.txt입니다.

cat("w3codebox", file="D:\\r_test.txt")

주의: 이 작업은 "쓰기 덮어쓰기" 작업입니다. 출력 파일의 기존 데이터를 지우게 됩니다. "추가 쓰기"를 원하면 append 파라미터를 설정하지 않도록 주의하세요:

cat("GOOGLE", file="/사용자/w3codebox/w3codebox-test/r_test.txt", append=TRUE)

위 코드를 실행한 후, r_test.txt 파일의 내용을 열어보면 다음과 같습니다:

w3codeboxGOOGLE

sink()

sink() 함수는 컨트롤 콘솔의 출력 텍스트를 직접 파일에 출력할 수 있습니다:

sink("/사용자/w3codebox/w3codebox-test/r_test.txt")

이 문장이 실행된 후, 컨트롤 콘솔에서의 모든 출력은 "/사용자/w3codebox/w3codebox-test/r_test.txt" 파일에 쓰기되고, 컨트롤 콘솔에 출력되지 않습니다。

주의: 이 작업은 "쓰기 덮어쓰기" 작업입니다. 기존 파일 내용을 직접 지우게 됩니다. 원래 파일 내용을 유지하고자 "추가 쓰기"를 원하면 append 파라미터를 설정하지 않도록 주의하세요:

컨트롤 콘솔의 출력을 유지하려면 split 속성을 설정할 수 있습니다:

sink("/사용자/w3codebox/w3codebox-test/r_test.txt", split=TRUE)

파일 출력을 취소하려면 파라미터 없는 sink를 호출할 수 있습니다:

sink()
sink("r_test.txt", split=TRUE) # 컨트롤 콘솔에도 출력
for (i in 1:5) 
    print(i)
sink() # 파일 출력을 취소
sink("r_test.txt", append=TRUE) # 컨트롤 콘솔에 출력하지 않고 파일에 추가로 쓰기
print("w3codebox")

위 코드를 실행하면 현재 디렉토리에 r_test.txt 파일이 생성됩니다. 파일 내용을 열어보면 다음과 같습니다:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] "w3codebox"

컨트롤 콘솔 출력은 다음과 같습니다:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

텍스트 입력

우리는 C 언어의 scanf, Java의 java.util.Scanner, Python의 input() 함수에 대해 기억할 수 있습니다. 하지만 R 언어는 자체적으로 해석형 언어로서, 터미널 스크립트 언어(예: bash 또는 PowerShell)와 유사합니다. 이러한 언어는 명령 시스템에 기반하고, 자체적으로 입력과 출력이 필요하며, 사용자 대상 애플리케이션 개발에 적합하지 않습니다(이들은 최종 사용자를 위한 도구이기 때문입니다). 따라서 R 언어는 컨트롤 콘솔에서 입력을 읽는 특별한 함수를 가지고 있지 않으며, 텍스트 입력은 R 사용에서 항상 진행되어 왔습니다.

파일에서 텍스트를 읽어들이기

R 언어에는 풍부한 파일 읽기 함수가 있지만, 특정 파일의 내용을 문자열로 읽고자 할 때는 readLines 함수를 사용할 수 있습니다:

readLines("/사용자/w3codebox/w3codebox-test/r_test.txt")

실행 결과:

[1] "w3codeboxGOOGLE"

읽은 결과는 두 개의 문자열로, 읽은 파일에 포함된 두 행의 내용입니다.

주의:읽은 텍스트 파일의 각 행(맨 마지막 행 포함)의 끝에는 개행 문자가 있어야 하지 않으면 오류가 발생합니다.

기타 방법

문자의 간단한 입력/출력 외에도, R은 데이터를 파일에 직접 저장할 수 있는 많은 방법을 제공합니다. CSV, Excel 테이블 등의 형식으로 저장할 수 있으며, 직접 읽을 수 있습니다. 이는 수학 연구자에게 매우 편리합니다. 그러나 이러한 기능은 R 언어 학습에 큰 영향을 미치지 않으며, 나중 장에서 다룹니다.

작업 디렉토리

파일 작업을 위해 파일 경로를 설정해야 합니다. R 언어는 다음 두 줄을 통해 현재 작업 디렉토리를 가져오고 설정할 수 있습니다:

  • getwd() : 현재 작업 디렉토리 가져오기

  • setwd() : 현재 작업 디렉토리 설정

# 현재 작업 디렉토리
print(getwd())
# 현재 작업 디렉토리 설정
setwd("/사용자/w3codebox/w3codebox-test2")
# 현재 작업 디렉토리 확인
print(getwd())

위 코드를 실행한 결과는 다음과 같습니다:

[1] "/사용자/w3codebox/w3codebox-test"
[1] "/사용자/tianqixin/w3codebox-test2"