R은 자바나 C와는 다르게 기존에 입력되어 있는 데이터 파일을 불러와서 분석하는 작업을 주로 수행한다.
이 과정을 위해서는 csv 파일을 R에서 읽어올 수 있어야 (입력) 하며, R에서 처리한 파일을 저장(출력)할 수 있어야 하는데
이번 포스트에서는 해당 프로세스를 알아보도록 하겠다.
해당 파일을 워킹디렉토리에 넣고 아래 명령어를 실행한다.
워킹 디렉토리는 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%에 해당하는 값)
평균
중위값
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 =0, to =1, by=0.20)) quantile(usedcars$price,seq(0, 1, 0.20)) #0부터 1까지 20퍼 단위로 움직 | cs |
간단하게 이야기하면, 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 |
'데이터분석 > with R' 카테고리의 다른 글
[R] R로 구현하는 KNN(게으른 학습) 알고리즘 - (2) (0) | 2017.12.16 |
---|---|
[R] R로 구현하는 KNN(게으른 학습) 알고리즘 - (1) (0) | 2017.12.16 |
[R] 부스팅(앙상블)을 활용한 의사결정나무 정확도 향상 (4) | 2017.11.19 |
[R] R로 구현하는 의사결정나무(Decision Tree) (0) | 2017.11.12 |
R의 데이터 구조, 타입 알아보기 (0) | 2017.11.01 |