본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 129. 분할표 만들기 (빈도, 비율)

by 만다린망고 2021. 12. 31.
반응형

남자 100명과 여자 100명을 임의로 선정하여 기름종이 사용여부를 조사하고 분할표로 만드는 예시입니다. 

 

 

먼저 데이터를 생성합시다. rbinom 함수를 이용하여 이항분포에서 임의로 추출했습니다. 남자는 기름종이 사용확률을 30%로, 여자는 70%로 놓았습니다. rbinom(number,size,probability) 인데 size에 1을 입력하면 0과 1 둘중 하나가 추출됩니다. 

 

#1.데이터 생성
set.seed(9999)
male=rbinom(100,1,0.3)
female=rbinom(100,1,0.7)

 

추출 결과는 아래와 같습니다. 

 

> male
  [1] 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0
 [28] 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0
 [55] 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0
 [82] 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0
> female
  [1] 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0
 [28] 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1
 [55] 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0
 [82] 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1

 

이제 데이터를 아래와 같은 형태의 데이터프레임으로 만들어줄 것입니다. 

 

 

sex 열과, use 열을 만들어줘야 합니다. 먼저 sex 열을 만들어봅시다. 

 

sex=c(  rep('male',length(male)) , rep('female',length(female))  )

 

결과는 아래와 같습니다. 

 

> sex
  [1] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
  [8] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [15] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [22] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [29] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [36] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [43] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [50] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [57] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [64] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [71] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [78] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [85] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [92] "male"   "male"   "male"   "male"   "male"   "male"   "male"  
 [99] "male"   "male"   "female" "female" "female" "female" "female"
[106] "female" "female" "female" "female" "female" "female" "female"
[113] "female" "female" "female" "female" "female" "female" "female"
[120] "female" "female" "female" "female" "female" "female" "female"
[127] "female" "female" "female" "female" "female" "female" "female"
[134] "female" "female" "female" "female" "female" "female" "female"
[141] "female" "female" "female" "female" "female" "female" "female"
[148] "female" "female" "female" "female" "female" "female" "female"
[155] "female" "female" "female" "female" "female" "female" "female"
[162] "female" "female" "female" "female" "female" "female" "female"
[169] "female" "female" "female" "female" "female" "female" "female"
[176] "female" "female" "female" "female" "female" "female" "female"
[183] "female" "female" "female" "female" "female" "female" "female"
[190] "female" "female" "female" "female" "female" "female" "female"
[197] "female" "female" "female" "female"

 

이번에는 use 열을 만들어봅시다. 범주형 변수이므로 factor 함수를 사용하여 요인으로 만들어줍니다. 

 

use=factor( c(male,female), levels=c(0,1), labels=c('no','yes') )

 

결과는 아래와 같습니다. 

 

> use
  [1] yes no  yes no  no  yes no  yes yes yes yes no  no  yes no  yes
 [17] yes no  yes no  no  yes yes no  no  no  no  no  no  no  no  no 
 [33] no  no  yes no  no  yes yes yes no  yes yes no  no  no  no  no 
 [49] no  no  no  yes no  no  yes no  no  yes no  no  no  no  no  yes
 [65] no  no  yes no  yes no  no  yes no  no  no  no  no  no  no  no 
 [81] no  no  no  yes no  no  no  yes no  yes no  no  no  no  no  yes
 [97] no  no  no  no  no  no  yes yes no  yes yes yes no  no  yes yes
[113] yes yes yes yes yes no  no  yes no  yes no  yes yes yes no  yes
[129] yes yes yes yes yes yes yes yes yes no  yes yes yes yes yes yes
[145] yes yes no  no  no  yes yes yes yes yes no  yes yes yes yes yes
[161] no  yes yes yes yes yes yes yes yes yes yes yes yes yes yes no 
[177] yes no  no  yes no  yes yes yes yes yes yes no  yes yes yes no 
[193] no  yes no  yes no  yes yes yes
Levels: no yes

 

분할표를 만들어봅시다. 먼저 빈도 분할표입니다. table 함수를 이용합니다. 

 

> table(dt)
        use
sex      no yes
  female 25  75
  male   70  30

 

확률 분할표는 prop.table 함수를 이용하고, table 함수의 결과를 넣어줘야 합니다. 

 

> prop.table(table(dt))
        use
sex         no   yes
  female 0.125 0.375
  male   0.350 0.150

 

코드 모아보기

 


#1. 데이터 생성

set.seed(9999)
male=rbinom(100,1,0.3)
female=rbinom(100,1,0.7)

#2. 데이터프레임 생성
sex=c(  rep('male',length(male)) , rep('female',length(female))  )
use=factor( c(male,female), levels=c(0,1), labels=c('no','yes') )

dt=data.frame(sex,use)

#3. 분할표 만들기 (빈도)
tab1=table(dt)

#3. 분할표 만들기 (비율)
tab2=prop.table(tab1)

 

 

#강의 영상

 

반응형

댓글