1.6 R 기초 문법

본 절에서 다루는 R 문법은 R 입문 시 객체(object)의 명명 규칙과 R 콘솔 창에서 가장 빈번하게 사용되는 기초적인 명령어만 다룰 예정임. 자세한 내용은 2-3주 차에 다룰 예정.

  • R은 객체지향언어(object-oriented language)
    • 객체(object): 숫자, 데이터셋, 단어, 테이블, 분석결과를 저장하고 있는 R 내부의 모든 변수를 통칭함
    • “객체지향”의 의미는 R의 모든 명령어는 객체를 대상으로 이루어진다는 것을 의미

알아두면 유용한(콘솔창에서 매우 많이 사용되는) 명령어 및 단축키

  • ls(): 현재 R 작업공간에 저장된 모든 객체 리스트 출력
  • rm(object_name): object_name에 해당하는 객체 삭제
  • rm(list = ls()): R 작업공간에 저장된 모든 객체들을 일괄 삭제
  • 단축키 [Ctrl] + [L]: R 콘솔 창 일괄 청소
  • 단축키 [Ctrl] + [Shift] + [F10]: R session 초기화
예시

print("Hello R World!!")
[1] "Hello R World!!"
x <- 7
y <- 1:30 #1에서 30까지 정수 입력
ls() #현재 작업공간 내 객체명 출력
 [1] "도움말 보기 명령어" "사용법"             "설명"              
 [4] "a"                  "b"                  "cars"              
 [7] "def.chunk.hook"     "fig_cap"            "hook_output"       
[10] "tab"                "x"                  "y"                 

rm(x) # 객체 x 삭제
ls()
 [1] "도움말 보기 명령어" "사용법"             "설명"              
 [4] "a"                  "b"                  "cars"              
 [7] "def.chunk.hook"     "fig_cap"            "hook_output"       
[10] "tab"                "y"                 
rm(a,b) # 객체 a,b 동시 삭제
ls()
[1] "도움말 보기 명령어" "사용법"             "설명"              
[4] "cars"               "def.chunk.hook"     "fig_cap"           
[7] "hook_output"        "tab"                "y"                 
# rm(list = ls()) # 모든 객체 삭제

R 객체 입력 방법 및 변수 설정 규칙

객체를 할당하는 두 가지 방법:=, <-

  • 두 할당 지시자의 차이점
    • =: 명령의 최상 수준에서만 사용 가능
    • <-: 어디서든 사용 가능
    • 함수 호출과 동시에 변수에 값을 할당할 목적으로는 <-만 사용 가능
# mean(): 입력 벡터의 평균 계산
mean(y <- 1:5)
[1] 3
y
[1] 1 2 3 4 5
mean(x = 1:5)
[1] 3
x
Error in eval(expr, envir, enclos): 객체 'x'를 찾을 수 없습니다

객체 또는 변수의 명명 규칙

  • 알파벳, 한글, 숫자, _, .의 조합으로 구성 가능(-은 사용 불가)
  • 변수명의 알파벳, 한글, .로 시작 가능
  • .로 시작한 경우 뒤에 숫자 올 수 없음(숫자로 인지)
  • 대소문자 구분
# 1:10은 1부터 10까지 정수 생성
# 'c()'는 벡터 생성 함수
x <- c(1:10) 
# 1:10으로 구성된 행렬 생성
X <- matrix(c(1:10), nrow = 2, ncol = 5, byrow = T)
x
 [1]  1  2  3  4  5  6  7  8  9 10
X
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
# 논리형 객체
.x <- TRUE
.x
[1] TRUE
# 알파벳 + 숫자
# seq(): 수열을 만드는 함수
# 1 에서부터(from) 10 까지(to) 공차가 2(by)인 수열
a1 <- seq(from = 1, to = 10, by = 2)
# 한글 변수명
가수 <- c("Damian Rice", "Beatles", "최백호", "Queen", "Carlos Gardel", "BTS", "조용필")
가수
[1] "Damian Rice" "Beatles" "최백호"
"Queen"
[5] "Carlos Gardel" "BTS" "조용필"

  1. 잘못된 객체 또는 변수 명명 예시
3x <- 7
Error: <text>:1:2: 예상하지 못한 기호(symbol)입니다.
1: 3x
     ^

_x <- c("M", "M", "F")
Error: <text>:1:2: 예상하지 못한 기호(symbol)입니다.
1: _x
     ^

.3 <- 10
Error in 0.3 <- 10: 대입에 유효하지 않은 (do_set) 좌변입니다