대표값
평균값 mean()
중앙값 median()
분산 var()
표준편차 sd()

var.score <- c(85,90,93,86,82)
# 평균값 mean()
mean(var.score)
## [1] 87.2
#중앙값 median()
median(var.score)
## [1] 86
#분산 var()  
var(var.score)
## [1] 18.7
#표준편차 sd()
sd(var.score)
## [1] 4.32435

나이 분석 예제

(var.age <- c(19,20,20,30,32,33,45,40,60,50,
              54,25,35,44,46,70,80,22,24,11,
              66,15,22,8,6,9,24,24,26,40
              ))
##  [1] 19 20 20 30 32 33 45 40 60 50 54 25 35 44 46 70 80 22 24 11 66 15 22
## [24]  8  6  9 24 24 26 40
length(var.age) 
## [1] 30
var.target <- cut(var.age,
                  breaks = c(0,10,20,30,40,50,Inf)) 


## defult : 이상 ~ 미만 
## right = F : 초과 ~ 이하

var.target
##  [1] (10,20]  (10,20]  (10,20]  (20,30]  (30,40]  (30,40]  (40,50] 
##  [8] (30,40]  (50,Inf] (40,50]  (50,Inf] (20,30]  (30,40]  (40,50] 
## [15] (40,50]  (50,Inf] (50,Inf] (20,30]  (20,30]  (10,20]  (50,Inf]
## [22] (10,20]  (20,30]  (0,10]   (0,10]   (0,10]   (20,30]  (20,30] 
## [29] (20,30]  (30,40] 
## Levels: (0,10] (10,20] (20,30] (30,40] (40,50] (50,Inf]
table(var.target)
## var.target
##   (0,10]  (10,20]  (20,30]  (30,40]  (40,50] (50,Inf] 
##        3        5        8        5        4        5
## 구간별로 빈도수 계산

data.frame(table(var.target))

임금 분석 예제

STEP 1 데이터 로딩

var.csv <- "https://www.dropbox.com/s/0djexymb42zd1e2/example_salary.csv?dl=1"
var.salary <- read.csv(var.csv,stringsAsFactors = T,
                       na = "-")
head(var.salary)

STEP 2 데이터 프레임 생성

#### STEP 2 데이터 프레임 생성 
colnames(var.salary) <- c("Age","Salary","SpecialSalary","WorkingTime","Numberofworker","Career","Gender")
str(var.salary)
## 'data.frame':    100 obs. of  7 variables:
##  $ Age           : Factor w/ 10 levels "-19","20-24",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Salary        : num  1346534 1584214 1922043 2130988 2414345 ...
##  $ SpecialSalary : num  151840 115375 268058 335710 352816 ...
##  $ WorkingTime   : num  170 180 178 181 181 ...
##  $ Numberofworker: num  15042 74251 143338 103585 65385 ...
##  $ Career        : Factor w/ 5 levels "1~3년미만","10년이상",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Gender        : Factor w/ 2 levels "남","여": 1 1 1 1 1 1 1 1 1 1 ...
# 'data.frame': 100 obs. of  7 variables:
#   $ Age           : Factor w/ 10 levels "-19","20-24",..: 1 2 3 4 5 6 7 8 9 10 ...
# $ Salary        : num  1346534 1584214 1922043 2130988 2414345 ...
# $ SpecialSalary : num  151840 115375 268058 335710 352816 ...
# $ WorkingTime   : num  170 180 178 181 181 ...
# $ Numberofworker: num  15042 74251 143338 103585 65385 ...
# $ Career        : Factor w/ 5 levels "1~3년미만","10년이상",..: 3 3 3 3 3 3 3 3 3 3 ...
# $ Gender        : Factor w/ 2 levels "남","여": 1 1 1 1 1 1 1 1 1 1 ...

STEP 3 검색 목록에 데이터 프레임 로딩

#detach(var.salary) ## 기존에 var.salary 라는 검색목록이 있다면 삭제 
attach(var.salary)

STEP 4 평균 구하기

var.mean <- mean(Salary,na.rm = T)

평균월급: ₩ 2,171,578

STEP 5 중앙값 구하기

var.mid <- median(Salary,na.rm = T)

#임금평균과 중앙값의 차이가 거의 없기 때문에 
#이상치(outlier)가 없고, 한쪽 쏠림이 없는 형태를 보입니다.

임금중앙값 : ₩2,120,345

STEP 6 임금의 범위 구하기

var.range <- range(Salary,na.rm = T)



var.lowest <- which(Salary == 1117605)
var.highest <- which(Salary==4064286)

var.salary[var.lowest, ]
#### > var.salary[var.lowest, ]


var.salary[var.highest, ]
#### > var.salary[var.highest, ]

최저임금 : ₩1,117,605, 최고임금 : ₩4,064,286

최저임금 수령자 상세내역 연령 : 60세 월급 : ₩1,117,605 보너스 : ₩10,667 경력 : 1년미만 성별 : 여

최고임금 수령자 상세내역세 연령 : 48세 월급 : ₩4,064,286 보너스 : ₩12,716,896 경력 : 10년이상 성별 : 남

STEP 7 사분위 구하기

var.qut <- quantile(Salary,na.rm = T)

0% : ₩1,117,605

25% : ₩1,689,658

50% : ₩2,120,345

75% : ₩2,519,221

100% : ₩4,064,286

STEP 8 리스트 구하기

var.list <- list(평균월급= var.mean,
                     월급중앙값= var.mid,
                     월급범위= var.range,
                     월급사분위= var.qut)

평균월급 : ₩2,171,578

월급중앙값 : ₩2,120,345

월급범위 : ₩1,117,605 ~ ₩4,064,286

STEP 9 성별임금 격차 확인하기

var.gender_sal <- tapply(Salary, #분석대상
                         Gender, #구분
                         mean, #함수
                         na.rm = T)

남성평균임금 : 2477332원

여성평균임금 : 1865823원

STEP 10 그래프 그리기

library(reshape2)
## Warning: package 'reshape2' was built under R version 3.5.1
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.5.1
var.melt <-  melt(var.gender_sal)
ggplot(var.melt,
       aes(
         x = Var1,
         y = value,
         fill = Var1
       ))+geom_bar(stat = "identity"
       )

STEP 11 표준편차 구하기

var.gender_sal_range <- tapply(Salary, #분석대상
                         Gender, #구분
                         range, #함수
                         na.rm = T)
var.gender_sal_range
## $남
## [1] 1346534 4064286
## 
## $여
## [1] 1117605 3002440
var.gender_sal_sd <- tapply(Salary, #분석대상
                         Gender, #구분
                         sd, #함수
                         na.rm = T)
var.gender_sal_sd
##       남       여 
## 646470.7 468270.6

STEP 12 경력별 임금 평균치

var.career <- tapply(Salary, #분석대상
                         Career, #구분
                         mean, #함수
                         na.rm = T)


var.career
##  1~3년미만   10년이상    1년미만  3~5년미만 5~10년미만 
##    1905012    2907119    1730835    2028015    2360463

STEP 13 관계도 차트로 표현

var.melt <- melt(var.career)
ggplot(
  var.melt,
  aes(
    x = Var1,
    y = value,
    group = 1
  )
)+geom_line(
  color = "skyblue2",
  size = 2
)+ coord_polar()+
  ylim(0,max(var.melt$value))