본문 바로가기

Archived(CSE Programming)/기타

R에 대한 소개 및 기본 문법

대용량 데이터 처리 및 분석에 있어 최근 가장 각광받는 언어는 R을 들 수 있다. 세계적으로는 물론, 국내에서도 학계와 커뮤니티, 연구소 등에서도 연구가 활발히 이루어지고 있다. R이 이렇게까지 주목 받을 수 있는 이유는 크게 3가지 정도를 들 수 있다. 

  • 오픈 소스 기반의 무료 소프트웨어: 대부분의 상업용 통계 소프트웨어 플랫폼은 수천에서 수만 달러 비용이 요구되는 반면에, 오픈 소스로 얼마든지 무료로 이용가능하다.
  • 포괄적인 통계 플랫폼: 대용량 데이터 처리 및 적재는 물론, 다양한 분석 툴고 전문 통계 패키지들을 활용하여 보다 편리한 데이터 처리 및 분석이 가능하다.
  • 시각성: 대규모 데이터에서 분석 결과를 직관적으로 이해할 수 있도록 시각화할 수 있으며, 또한 이차원 평면상에서도 데이터의 다차원 구조를 표현할 수 있다.
  • 그 외에도 멀티 OS, 전세계적인 커뮤니티 생태계, 객체 지향과 함수 지향의 장점 모두 보유 등이 있다.
 

기본 문법 #1 변수 관련

할당, 논리, 벡터, 소멸 등

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 변수 할당
= 13  # 방법 =
<- 12 # 방법 <-
 
# 논리문
== y     # FALSE
!= y    # TRUE
 
# 벡터 생성
= c(1,2,3,4,5
 
# 생성 객체 확인
ls()
objects()
 
# 객체 소멸
rm(x)
 

기본 문법 #2 자료구조

1) 하나의 객체에 하나의 자료형 값을 담는 스칼라(Scalar) 자료형

2) 하나의 객체에 하나의 자료형의 여러 값들을 담는 벡터(Vector) 자료형

3) 하나의 객체에 서로 다른 자료형의 스칼라 값들을 2차원으로 담는 매트릭스(Matrix) 자료형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Scalar 자료형
<- 10.432         # 실수
<- "string"        # 문자열
<- TRUE             # 논리값
 
# Vector 자료형
<- c(1.22.73.14.95.4)
<- c(TRUE, FALSE, FALSE)
<- c("a""b""c""d")
<- 1.5:4.9     # 1.5 2.5 3.5 4.5
<- c(1:10)      # 1 2 3 4 5 ... 10
 
seq_x = seq(1102# 1~10 2씩 증가 순차값 벡터 생성
rep_x = rep(52)       # 5 값을 2번 반복한 벡터 생성
 
# Matrix 자료형
matrix(    
    c(123456),
    nrow=2,
    ncol=3
)
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 데이터셋 만들기
x1 = c(1:10# 1 ~ 10 까지 1씩 증가하는 수열 생성
= rep(1,10# 1을 10번 반복
 
DATA_SET = data.frame(
 X = x1,
 y = y
)
 
head(DATA_SET)
# X y
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1
6 6 1
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

기본문법 #3 산술연산

1
2
3
4
5
6
7
8
9
10
11
# 산술
= 18
= 4
 
+ y              # 덧셈
- y             # 뺄셈
* y             # 곱셈
x^y                # 거듭제곱        
/ y             # 일반 나눗셈
x %/% y          # 정수 나눗셈
x %% y           # 나머지

기본문법 #4 반복문

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# for문 1
for(i in 1:5){     # i에 1 ~ 5까지의 정수를 차례대로 부여
   print(i)     # i를 출력
}
 
# for문 2
LIST = seq(1,30,2# LIST에 1 ~ 30 까지 2씩 증가하는 정수들의 벡터 생성.
SPACE = c() # SPACE라는 변수가 없는 벡터 생성.
for( i in LIST){ #i에 LIST에 속한 값들을 차례대로 부여
   SPACE =  c(SPACE,i) #SPACE에 i를 저장.
}
 
# while 문
<- 0
while(i < 10) {
    i <- i + 1
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

기본문법 #5 조건문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 조건문 if문
= c(1,2,3,4,5)
 
if( 7 %in% A){
 print("TRUE")
} else{ 
   print("FALSE")
}
 
# if문 2
if(x == 3 || x >= 7 || x <= 1) {
    x <- x+1
}
else(x != 1 && x < 3) {
    x <- x-1
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

기본문법 #6 함수생성

1
2
3
4
5
6
7
8
9
10
11
# 함수생성
<- function(n){
    sum <- 0;
    for(i in 1:n){
        sum <- sum + i
    }
    return (sum)
}
 
# 함수호출
f(12)