안녕하세요. 우주신입니다.
이번 포스팅과 다음 포스팅 두번 나누어 기술통계(Descriptive Statistics) 함수에 대해 다뤄보겠습니다.
기술통계는 관측한 데이터를 도표로 정리하거나 통계량(예: 평균, 분산, 상관계수, 주성분정준변량)으로 정리하는 것으로서
관측한 현상의 특징을 기술한다.
[출처: 네이버 지식백과]
먼저, 데이터를 확인하는 함수들 부터 살펴보고
head( ), tail( ), some( ), str( )
데이터를 요약하는 방법을 보겠습니다.
min( ), max( ), mean( ), median( ), var( ), sd( ), range( ), quantile( ), summary( ), apply( )
그 외 attach( ), detach( ) 함수에 대해 배워보겠습니다.
1. 데이터 확인
수업 시간에 배운 데이터를 가지고 해보죠.
store.df <- read.csv("http://goo.gl/QPDdMl")
복사해서 실행하면 밑과 같은 데이터가 store.df 데이터프레임에 입력될 것 입니다.
2080개 항목이나 되는 이렇게 큰 데이터를 일일이 다 확인할 수는 없겠죠?
head( ) 함수를 통해 데이터 앞 부분을 확인할 수 있습니다.
tail( ) 함수를 통해 데이터 뒷 부분을 확인할 수 있습니다.
또한 some( ) 함수를 통해 데이터를 랜덤으로 확인할 수도 있습니다.
some( ) 함수는 'car' 패키지 안에 있으므로 install.packages('car') - library(car) 까먹지마세용~
그 다음으로는 아주 유용한 str( ) 함수 입니다. structure의 약자로서 데이터 구조를 한눈에 파악할 수 있습니다.
데이터구조가 10개의 변수, 2080개 항목으로 이루어진 data.frame인 것을 알 수 있으며
데이터프레임의 변수들이 어떤 형태의 데이터를 가지고 있는지 알 수 있습니다.
데이터를 활용하기 전에 항상 str( ) 함수를 써서 데이터 구조가 적절한 형태를 취하는지 확인해야 합니다.
특히, 요인(factor)형은 꼭 확인 !
2. 데이터 요약
데이터를 확인했으니 가장 많이 쓰이는 함수들을 가지고 데이터를 요약해보겠습니다.
-min( ): 최소값
-max( ): 최대값
-mean( ): 평균
일일이 $를 사용하여 변수를 지정하려니 정말 귀찮고 번거롭습니다. 이 때 활용할 수 있는 함수가 attach( ), detach( ) 입니다.
attach(dataframe) 입력 후로는 밑에 그림과 같이 데이터프레임 이름을 생략하고 변수만 입력하면 됩니다.
마지막에 detach(dataframe) 함수를 입력해 끝을 알려줘야 추후에 오류가 안 납니다.
-median( ): 중앙값
-var( ): 분산
-sd( ): 표준편차
-range( ): 범위
-quantile( ): 사분위수
-quantile(변수, probs = 범위): 특정 범위를 지정해 줄 수 있습니다.
정말 많이 쓰이는 summary( ) 함수 입니다. 최소값, 사분위값, 중앙값, 평균, 최대값을 깔끔하게 한 눈에 보여줍니다.
apply( ) 함수를 이용해서도 데이터를 요약할 수 있습니다.
apply(dataframe, MARGIN=1(가로)2(세로), FUN = 기능)
-apply(store.df[,2:9], MARGIN=2, FUN=mean): store.df 데이터프레임의 2열부터 9열까지 세로로 평균값을 계산하라.
-apply(store.df[,2:9], MARGIN=2, FUN=sum): store.df 데이터프레임의 2열부터 9열까지 세로로 합을 계산하라.
끝.
수고하셨습니다.
'R' 카테고리의 다른 글
[R] NA, NULL, NaN, Inf, -Inf 구분 및 처리 (3) | 2017.02.20 |
---|---|
[R] 기술통계(Descriptive Statistics) 함수 시각화 (0) | 2017.02.18 |
[R] 엑셀 데이터 불러오기, 저장하기 (CSV파일) (0) | 2017.02.11 |
[R] 데이터프레임(DataFrame) 변수명 변경, 변수 선택 및 정렬 (5) | 2017.02.07 |
[R] 데이터프레임(DataFrame) 생성, 변수 추가, 결합 및 인덱싱 (4) | 2017.02.07 |
댓글