Ch5. 통계값 뽑아내기
데이터 다운로드 링크: https://www.kaggle.com/liujiaqi/hr-comma-sepcsv
# 코드 실행전에 처리되어 있어야 하는 데이터 전처리
DATA = read.csv('C:/R/HR_comma_sep.csv')
DATA$left = as.factor(DATA$left)
DATA$Work_accident = as.factor(DATA$Work_accident)
DATA$promotion_last_5years = as.factor(DATA$promotion_last_5years)
- 데이터 요약 보기
summary(DATA$salary)
## high low medium
## 1237 7316 6446
summary(DATA$satisfaction_level)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0900 0.4400 0.6400 0.6128 0.8200 1.0000
변수가 Factor 형태일 때는 각 level(Low, Mid, High)에 해당하는 집계 Count를 나타내주며, Numeric 형태일 때는 최솟값, 최댓값, 평균 및 각 분위수를 나타내줍니다.
분위수(quantile)란?
변수를 오름차순으로 정리하였을 때, 특정 % 위치에 해당되는 값을 의미합니다. 예를 들어, Q1은 1분위수로 하위 25%에 해당되는 직원의 satisfaction_level값을 나타내줍니다. Median(중위수)는 중간(50%)에 해당되는 직원의 satisfaction_level을 나타내주며, Q3( 하위 75%, 상위 25%)의 기준에 해당되는 직원의 satisfaction_level을 의미합니다.
분위수 계산
summary 함수를 쓰면, 기본적인 분위수들은 바로 나오지만, 다른 %에 해당되는 분위수를 알고싶을 때도 있기 마련입니다.
quantile(DATA$satisfaction_level,probs = c(0.1,0.3,0.6,0.9)) # 10%, 30%, 60%, 90%에 해당하는 분위수 뽑아내기
## 10% 30% 60% 90%
## 0.21 0.49 0.72 0.92
이미 연습문제에서 살짝 다루기는 했지만, 다시 한번 정리를 해보도록 하겠습니다.
# 단일 변수의 합 구하기
sum(DATA$satisfaction_level)
## [1] 9191.89
# 단일 변수의 평균 구하기
mean(DATA$last_evaluation)
## [1] 0.7161017
# 단일 변수의 표준편차 구하기
sd(DATA$satisfaction_level)
## [1] 0.2486307
# 다중 변수의 합, 평균 구하기 , obs(행)별로 합,평균 구할 시에는 rowSums, rowMeans 활용
colMeans(DATA[1:5])
## satisfaction_level last_evaluation number_project
## 0.6128335 0.7161017 3.8030535
## average_montly_hours time_spend_company
## 201.0503367 3.4982332
colSums(DATA[1:5])
## satisfaction_level last_evaluation number_project
## 9191.89 10740.81 57042.00
## average_montly_hours time_spend_company
## 3015554.00 52470.00