R은 자바나 C와는 다르게 기존에 입력되어 있는 데이터 파일을 불러와서 분석하는 작업을 주로 수행한다. 

이 과정을 위해서는 csv 파일을 R에서 읽어올 수 있어야 (입력) 하며, R에서 처리한 파일을 저장(출력)할 수 있어야 하는데

이번 포스트에서는 해당 프로세스를 알아보도록 하겠다.


usedcars.csv


해당 파일을 워킹디렉토리에 넣고 아래 명령어를 실행한다. 

워킹 디렉토리는 setwd(원하는 디렉토리) 와 getwd()명령어로 세팅 및 확인이 가능하다.



1
2
3
#데이터 구조 살펴보기 
usedcars <-read.csv("usedcars.csv",stringsAsFactors = FALSE)
str(usedcars)
cs


우선 데이터 파일을 (csv파일) 읽어오려면, read.csv 명령어를 사용한다. 

불러온 csv를 "usedcars"라는 변수에 저장하겠다는 것이다.

str(usedcars)는 usedcars의 대략적인 데이터 구조를 살펴볼 수 있는 명령어이며 결과는 아래와 같다. 




왼쪽 달러사인($)과 함께 데이터 프레임에 소속된 변수명이 표시되고, 해당 변수에 속한 데이터들이 일정 부분 표시된다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#요약출력 
summary(usedcars)
summary(usedcars[c("price","mileage")])
summary(usedcars$price)
 
> summary(usedcars)
      year         model               price      
 Min.   :2000   Length:150         Min.   : 3800  
 1st Qu.:2008   Class :character   1st Qu.:10995  
 Median :2009   Mode  :character   Median :13592  
 Mean   :2009                      Mean   :12962  
 3rd Qu.:2010                      3rd Qu.:14904  
 Max.   :2012                      Max.   :21992  
    mileage          color           transmission      
 Min.   :  4867   Length:150         Length:150        
 1st Qu.: 27200   Class :character   Class :character  
 Median : 36385   Mode  :character   Mode  :character  
 Mean   : 44261                                        
 3rd Qu.: 55125                                        
 Max.   :151479                                        
> summary(usedcars[c("price","mileage")])
     price          mileage      
 Min.   : 3800   Min.   :  4867  
 1st Qu.:10995   1st Qu.: 27200  
 Median :13592   Median : 36385  
 Mean   :12962   Mean   : 44261  
 3rd Qu.:14904   3rd Qu.: 55125  
 Max.   :21992   Max.   :151479  
> summary(usedcars$price)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   3800   10995   13592   12962   14904   21992 
cs

다음은 가장 강력한 기초통계 함수라고 할 수 있는 summary()함수이다. 


summary 함수는 요청한 칼럼의 주요 값들을 표시해 주는데, 그 정보는 아래와 같다.

    • 최소값

    • 최대값

    • 1st quantile (25%에 해당하는 값)

    • 3rd quantile (75%에 해당하는 값)

    • 평균 

    • 중위값

호출법은 저번 포스팅의 데이터프레임 호출법과 동일하며 (같은 데이터프레임 형식이다) 
한 개 칼럼을 호출할수도 있고, 달러사인과 c("1","2") 형식으로 다중의 칼럼을 호출할 수 있다.


1
2
3
4
5
6
7
8
9
#사분위수 나타내기
range(usedcars$price) #최소 최대값 
diff(range(usedcars$price)) #range 값 차이 
IQR(usedcars$price) #q1, q3 차이 
quantile(usedcars$price) #요약계산을 위해서 사용 / 25퍼씩 요약이 어떻게 나오는지  
quantile(usedcars$price,prob=c(0.01,0.99))#내가 정확하게 알고자 하는 퍼센트 명시 
quantile(usedcars$price,seq(from =0to =1, by=0.20))
quantile(usedcars$price,seq(010.20)) #0부터 1까지 20퍼 단위로 움직  
 
cs

다음은 위에서 보여주는 Quantile(사분위수)에 관한 내용이다.
우선 사분위수에 대해서 간단하게 설명하기 위해 아래 그림을 참고하자 



간단하게 이야기하면, Quantile(사분위수)는 지나치게 범주에서 벗어나는 값들을 제외하고 핵심적인 범주의 데이터만

범위로 지정할 수 있는 방법중 하나이다. 


보통 말하는 IQR(Inter Quantile range)는 Q3~Q1 (전체 데이터 범주의 75%~25% 사이) 를 말하는 것이다.

여기서 1.5IQR이상이나 이하의 값들은 이상값 혹은 극단값이라고 불리게 된다


다시 R스튜디오로 돌아가서 실행 화면을 보자 




그냥 quantile명령어를 실행하면 0 25 50 75 100 순서로 다섯 가지 위치의 데이터 값을 보여준다.

여기서 위에서 설명한 IQR은 25%~75% 사이이며, 해당 IQR을 확인해보고 싶다면 위에 있는 것처럼 IQR명령어를,

총 범위를 보고싶으면 range()와 diff()를 함께 쓰면 된다. (range 는 범위 - diff는 그 범위의 차이. 그래서 diff가 반드시 밖으로 가야한다) 


그 외 원하는 범위를 설정하여 사분위수 함수를 응용할 수 있다. 


1
2
3
#csv파일 내보내기(저장) 
write.csv(usedcars)
write.csv(usedcars,"C:/set_your_directory")
cs

처리를 완료한 csv파일을 저장하고 싶다면 위와 같은 명령어를 활용할 수 있다.
디렉토리를 지정하지 않으면 기본 워킹 디렉토리에 저장되며, 두번째 라인처럼 수동으로 위치를 지정할 수 있다. 


+ Recent posts