🇭🇰출발~!🇭🇰

set.seed(123) #난수 생성을 위해 seed를 123으로 지정합니다.

x <- rnorm(100, 65, 13) #평균 65, 표준편차 13인 data 100개를 생성합니다.

table(x) #생성된 50개의 난수 값을 확인해 봅시다.

#첫 줄은 생성된 난수를 의미하며, 둘째 줄은 빈도수를 의미합니다. 많이 중복돼봤자 3번이네요.

x<-c(x, max(x)+sample(10:20, 5), min(x)-sample(10:20, 5)) #이상치를 생성하기 위해 생성된 난수 중 최댓값 보다 5개 더,

                                                                          #최소값보다 작은 5개 data 더 생성합니다.

boxplot(x) #난수 50개의 box plot을 그려봅니다.

#그림만 있을 때는, 전체적인 내용을 파악하기 쉽지만 정확한 수치를 알지 못한다는 단점이 있습니다.

quantile(x) #사분위수 정보에 대한 함수를 호출하겠습니다.

# 25%는 1사분위수, 50%는 2사분위수(median), 75%는 3사분위수를 의미합니다.

# Q1, Q2, Q3라고도 불리죠.

q <- quantile(x) #변수 q에 사분위수 정보들을 넣겠습니다. 7.0 ~ 99.0까지 순차대로 들어가겠네요.

q1 <- q[2] #1사분위수는 25%(27.0)가 두번 째에 있으므로 q[2] 값을 q1에 저장합니다.

q3 <- q[4] #3사분위수는 75%(77.5)가 네번 째 있으므로 q[4] 값을 q3에 저장합니다.

 

iqr <- q3-q1 # IQR은 3사분위수 - 1사분위수 값이므로 iqr 변수에 q3-q1 값을 저장합니다.

 

upper_fence <- q3 + (1.5*iqr) # box 위에 마진까지는 3사분위수 + iqr의 1.5배 입니다.

lower_fence <- q1 - (1.5*iqr) # box 아래 마진은 반대로 1사분위수 - iqr의 1.5배 겠죠?

 

#따라서, 이상치의 범위는 x < lower_fence | x > upper_fence 입니다. 

 

outlier_idx <- which( x< lower_fence | x > upper_fence) #이상치 가진 값들을 indexing 하여 변수에 저장합니다.

x2 <- x[-outlier_idx] #이상치를 제외한 data들만 뽑아서 x2 변수에 새로 저장합니다.

boxplot(x2)  #이상치를 제외한 data들만 x2에 있으므로,

                #boxplot(x)와 다르게 boxplot(x2)에는 이상치 제외된 값들이 그려지게 됩니다.

'컴퓨터공학 > R programming' 카테고리의 다른 글

[5] 반복문(for문)  (0) 2019.05.22
[4] stringr package 이용, string 함수  (0) 2019.05.22
[3] R의 자료구조(R Data Structure)  (0) 2019.05.21
[2] R언어 Data type  (0) 2019.05.21
[1] R, RStudio 설치하기  (0) 2019.05.21

C++ 경우를 먼저 살펴보면,

 

for(int i =1, i<=3; i++)

{

  cout << i << "번째 출력" << endl;

}

실행할 경우, 

1번째 출력

2번째 출력

3번째 출력

이라고 나오게 되는데, 이걸 R에서 구현해보겠습니다.

 

구조 : for(변수 in 반복조건){}

i <- 1

for( i in 1:3)

{

print(paste0(i, "번째 출력"))

}

결과 값 : 

C/C++에 익숙해서 조금은 낯설게 느껴지지만

logic은 똑같습니다!

반복 횟수 지정할 변수 초기화 그리고 반복 조건 지정하시면 됩니다.

'컴퓨터공학 > R programming' 카테고리의 다른 글

[6] 사분위수 구하기  (9) 2019.05.23
[4] stringr package 이용, string 함수  (0) 2019.05.22
[3] R의 자료구조(R Data Structure)  (0) 2019.05.21
[2] R언어 Data type  (0) 2019.05.21
[1] R, RStudio 설치하기  (0) 2019.05.21

BE THE FIRST PENGUIN