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!!"
<- 7
x <- 1:30 #1에서 30까지 정수 입력
y 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()'는 벡터 생성 함수
<- c(1:10)
x # 1:10으로 구성된 행렬 생성
<- matrix(c(1:10), nrow = 2, ncol = 5, byrow = T)
X 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
# 논리형 객체
<- TRUE
.x .x
[1] TRUE
# 알파벳 + 숫자
# seq(): 수열을 만드는 함수
# 1 에서부터(from) 10 까지(to) 공차가 2(by)인 수열
<- seq(from = 1, to = 10, by = 2)
a1 # 한글 변수명
<- c("Damian Rice", "Beatles", "최백호", "Queen", "Carlos Gardel", "BTS", "조용필")
가수 가수
[1] "Damian Rice" "Beatles" "최백호"
"Queen"
[5] "Carlos Gardel" "BTS" "조용필"
- 잘못된 객체 또는 변수 명명 예시
<- 7 3x
Error: <text>:1:2: 예상하지 못한 기호(symbol)입니다.
1: 3x
^
<- c("M", "M", "F") _x
Error: <text>:1:2: 예상하지 못한 기호(symbol)입니다.
1: _x
^
3 <- 10 .
Error in 0.3 <- 10: 대입에 유효하지 않은 (do_set) 좌변입니다