Data
class_roll <- read.xlsx("../data/class_roll190825.xlsx", 1,
startRow = 2,
endRow = 163,
colIndex = c(3:7, 9),
colClasses = rep("character", 6),
stringsAsFactors = FALSE)
str(class_roll)
## 'data.frame': 161 obs. of 6 variables:
## $ 학과 : chr "경영대학" "법학과" "화학과" "데이터과학융합스쿨" ...
## $ 학.직.번 : chr "20198043" "20192701" "20163401" "20193201" ...
## $ 이름 : chr "TUMUROCHIR NOMINERDENE" "강미서" "강민주" "강선영" ...
## $ 학년 : chr "1" "1" "3" "1" ...
## $ E.Mail : chr "nomit_0323@yahoo.com" NA "sksh085@naver.com" "hoban0000@naver.com" ...
## $ 핸드폰번호: chr "010-8138-6811" "010-8973-3307" "010-3390-4628" "010-9361-7863" ...
names(class_roll) <- c("dept", "id", "name", "year", "email", "cell_no")
str(class_roll)
## 'data.frame': 161 obs. of 6 variables:
## $ dept : chr "경영대학" "법학과" "화학과" "데이터과학융합스쿨" ...
## $ id : chr "20198043" "20192701" "20163401" "20193201" ...
## $ name : chr "TUMUROCHIR NOMINERDENE" "강미서" "강민주" "강선영" ...
## $ year : chr "1" "1" "3" "1" ...
## $ email : chr "nomit_0323@yahoo.com" NA "sksh085@naver.com" "hoban0000@naver.com" ...
## $ cell_no: chr "010-8138-6811" "010-8973-3307" "010-3390-4628" "010-9361-7863" ...
Randomization
set.seed(36)
N <- nrow(class_roll)
class_roll$group <- sample(1:N) %% 2 %>%
factor(levels = c(0, 1), labels = c("Red", "Black"))
학번
class_roll %$%
table(.$group, .$id %>% substr(1, 4)) %>%
pander
Red |
1 |
0 |
3 |
3 |
8 |
13 |
7 |
10 |
35 |
Black |
1 |
1 |
3 |
6 |
11 |
15 |
2 |
7 |
35 |
# pander(table("그룹" = class_roll$group, substr(class_roll$id, 1, 4)))
class_roll %$%
substr(.$id, 1, 4) %>%
`>=`(2019) %>%
ifelse("younger_19", "older_19") %>%
factor(levels = c("younger_19", "older_19")) %>%
table(class_roll$group, .) %>%
pander
# ID_19 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2019, "younger_19", "older_19"),
# levels = c("younger_19", "older_19"))
# pander(table("그룹" = class_roll$group, "19학번 기준" = ID_19))
# ID_18 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2018, "younger_18", "older_18"),
# levels = c("younger_18", "older_18"))
# pander(table("그룹" = class_roll$group, "18학번 기준" = ID_18))
# ID_17 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2017, "younger_17", "older_17"),
# levels = c("younger_17", "older_17"))
# pander(table("그룹" = class_roll$group, "17학번 기준" = ID_17))
# ID_16 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2016, "younger_16", "older_16"),
# levels = c("younger_16", "older_16"))
# pander(table("그룹" = class_roll$group, "16학번 기준" = ID_16))
# ID_15 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2015, "younger_15", "older_15"),
# levels = c("younger_15", "older_15"))
# pander(table("그룹" = class_roll$group, "15학번 기준" = ID_15))
# ID_14 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2014, "younger_14", "older_14"),
# levels = c("younger_14", "older_14"))
# pander(table("그룹" = class_roll$group, "14학번 기준" = ID_14))
학번 홀짝
class_roll$id %>%
as.numeric %>%
`%%`(2) %>%
factor(levels = c(1, 0), labels = c("홀", "짝")) %>%
table(class_roll$group, .) %>%
pander
# odd_even <- as.numeric(class_roll$id) %% 2
# odd_even <- factor(odd_even, levels = c(1, 0), labels = c("홀", "짝"))
# pander(table("Group"= class_roll$group, "odd_even" = odd_even))
e-mail 서비스업체
class_roll$email %>%
strsplit("@", fixed = TRUE) %>%
sapply("[", 2) %>%
table(class_roll$group, .) %>%
pander
Red |
1 |
7 |
1 |
2 |
1 |
68 |
0 |
Black |
0 |
5 |
0 |
2 |
3 |
69 |
1 |
# email_list <- strsplit(class_roll$email, "@", fixed = TRUE)
# mail_com <- sapply(email_list, "[", 2)
# pander(table("그룹" = class_roll$group, "e-mail" = mail_com))
전화번호의 분포
# cell_numbers <- sapply(substr(class_roll$cell_no,
# start = 10, stop = 13),
# as.numeric)
cell_numbers <- class_roll$cell_no %>%
substr(start = 10, stop = 13) %>%
sapply(as.numeric)
cut_label <- paste(paste0(0:9, "000"), paste0(0:9, "999"),
sep = "~")
# kable(t(table(cut(cell_numbers,
# labels = cut_label,
# breaks = seq(0, 10000, by = 1000)))))
cell_numbers %>%
cut(labels = cut_label,
breaks = seq(0, 10000, by = 1000)) %>%
table(class_roll$group, .) %>%
# t %>%
kable
Red |
4 |
6 |
6 |
6 |
8 |
5 |
12 |
7 |
14 |
12 |
Black |
7 |
5 |
9 |
9 |
5 |
11 |
7 |
9 |
10 |
9 |
cell_numbers %>%
hist

# hist(cell_numbers)
cell_numbers %>%
cut(labels = cut_label,
breaks = seq(0, 10000, by = 1000)) %>%
table %>%
chisq.test
##
## Chi-squared test for given probabilities
##
## data: .
## X-squared = 9.8696, df = 9, p-value = 0.3611
# chisq.test(table(cut(cell_numbers,
# labels = cut_label,
# breaks = seq(0, 10000, by = 1000))))
성씨 분포
f_name <- class_roll$name %>%
substring(first = 1, last = 1)
f_name %>%
table(class_roll$group, .) %>%
pander
Red |
0 |
2 |
0 |
0 |
1 |
3 |
16 |
0 |
2 |
1 |
0 |
8 |
1 |
1 |
1 |
0 |
2 |
2 |
1 |
1 |
2 |
0 |
0 |
0 |
11 |
2 |
4 |
2 |
2 |
4 |
0 |
1 |
0 |
1 |
4 |
0 |
1 |
2 |
0 |
1 |
1 |
Black |
1 |
4 |
2 |
1 |
1 |
1 |
15 |
1 |
0 |
0 |
1 |
9 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
2 |
1 |
3 |
11 |
1 |
1 |
0 |
6 |
1 |
1 |
0 |
1 |
0 |
5 |
1 |
0 |
3 |
1 |
2 |
1 |
# f_name <- substring(class_roll$name, first = 1, last = 1)
# pander(table("Group" = class_roll$group, "Family Name" = f_name))
많이 나오는 성씨
f_name %>%
`%in%`(c("김", "이", "박")) %>%
ifelse(f_name, "기타") %>%
factor(levels = c("김", "이", "박", "기타")) %>%
table(class_roll$group, .) %>%
pander
Red |
16 |
11 |
8 |
45 |
Black |
15 |
11 |
9 |
46 |
# f_name_f <- factor(ifelse(f_name %in% c("김", "이", "박"), f_name, "기타"),
# levels = c("김", "이", "박", "기타"))
# pander(table("Group" = class_roll$group, "Family Name" = f_name_f))
학과
# pander(class_roll)
class_roll %$%
table(.$group, .$dept) %>%
pander
Red |
9 |
5 |
1 |
2 |
1 |
0 |
1 |
0 |
8 |
0 |
10 |
2 |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
11 |
2 |
4 |
1 |
3 |
0 |
2 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
3 |
1 |
Black |
3 |
5 |
3 |
5 |
2 |
1 |
1 |
1 |
11 |
1 |
4 |
2 |
1 |
1 |
1 |
0 |
0 |
0 |
3 |
9 |
0 |
4 |
1 |
4 |
4 |
0 |
1 |
0 |
5 |
2 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
# pander(table("그룹" = class_roll$group, "학과" = class_roll$dept))
전체 출석부
class_roll %$%
order(.$group, .$name) %>%
class_roll[., c("group", "id", "name")] %>%
pander(row.names = FALSE)
Red |
20163401 |
강민주 |
Red |
20195284 |
강지석 |
Red |
20176206 |
구다영 |
Red |
20145208 |
권준영 |
Red |
20192304 |
권현정 |
Red |
20193205 |
권혜수 |
Red |
20162509 |
김미연 |
Red |
20193808 |
김민재 |
Red |
20196207 |
김선우 |
Red |
20196208 |
김성훈 |
Red |
20192519 |
김수경 |
Red |
20196211 |
김수정 |
Red |
20172512 |
김수지 |
Red |
20165306 |
김승현 |
Red |
20193210 |
김여준 |
Red |
20195131 |
김용우 |
Red |
20182106 |
김윤희 |
Red |
20192209 |
김진규 |
Red |
20173516 |
김현구 |
Red |
20195149 |
김현화 |
Red |
20155120 |
김휘진 |
Red |
20143311 |
김희수 |
Red |
20132111 |
류붓샘 |
Red |
20153613 |
류지은 |
Red |
20143507 |
문도선 |
Red |
20196230 |
박근휘 |
Red |
20192538 |
박선웅 |
Red |
20163313 |
박성민 |
Red |
20175313 |
박성중 |
Red |
20182870 |
박수용 |
Red |
20192543 |
박인성 |
Red |
20165132 |
박진우 |
Red |
20161610 |
박현성 |
Red |
20132409 |
방극찬 |
Red |
20182884 |
백두산 |
Red |
20134124 |
서승원 |
Red |
20155132 |
송시호 |
Red |
20195186 |
송예찬 |
Red |
20192902 |
신명진 |
Red |
20192550 |
신윤철 |
Red |
20155136 |
심창현 |
Red |
20165320 |
어형규 |
Red |
20192915 |
오미나 |
Red |
20194130 |
오유빈 |
Red |
20181715 |
이강민 |
Red |
20196629 |
이강혁 |
Red |
20161064 |
이기복 |
Red |
20173531 |
이상섭 |
Red |
20192567 |
이수지 |
Red |
20172626 |
이슬이 |
Red |
20192569 |
이승윤 |
Red |
20192945 |
이승효 |
Red |
20192954 |
이정아 |
Red |
20192957 |
이제훈 |
Red |
20192132 |
이혜윤 |
Red |
20186275 |
임성룡 |
Red |
20165328 |
임지환 |
Red |
20193246 |
장수빈 |
Red |
20192350 |
장인영 |
Red |
20183732 |
장지연 |
Red |
20153160 |
장효준 |
Red |
20192135 |
전소혜 |
Red |
20163427 |
전혜림 |
Red |
20183246 |
정수빈 |
Red |
20112355 |
정윤진 |
Red |
20155164 |
조규호 |
Red |
20196641 |
조승현 |
Red |
20155341 |
조하림 |
Red |
20186294 |
조하연 |
Red |
20186296 |
지용주 |
Red |
20173541 |
채성혁 |
Red |
20196289 |
최기태 |
Red |
20163963 |
최승규 |
Red |
20163258 |
최우헌 |
Red |
20192587 |
최호성 |
Red |
20192588 |
표가영 |
Red |
20192237 |
한승용 |
Red |
20162922 |
한원석 |
Red |
20183262 |
홍예은 |
Red |
20155174 |
황승현 |
Black |
20198043 |
TUMUROCHIR NOMINERDENE |
Black |
20192701 |
강미서 |
Black |
20193201 |
강선영 |
Black |
20193202 |
강정민 |
Black |
20162802 |
강태수 |
Black |
20196501 |
고민재 |
Black |
20196601 |
고진규 |
Black |
20135303 |
공준범 |
Black |
20165302 |
구영모 |
Black |
20196203 |
권민서 |
Black |
20145104 |
김건형 |
Black |
20153704 |
김권리 |
Black |
20196505 |
김상현 |
Black |
20153109 |
김성렬 |
Black |
20182838 |
김용해 |
Black |
20196216 |
김원 |
Black |
20165217 |
김유진 |
Black |
20196217 |
김이정 |
Black |
20192107 |
김주리 |
Black |
20153115 |
김철원 |
Black |
20155216 |
김현성 |
Black |
20195148 |
김현식 |
Black |
20131736 |
김현욱 |
Black |
20142539 |
김현준 |
Black |
20195151 |
김홍의 |
Black |
20191514 |
당빈 |
Black |
20192534 |
민가흔 |
Black |
20115131 |
박명진 |
Black |
20191046 |
박성근 |
Black |
20192415 |
박승희 |
Black |
20192541 |
박영상 |
Black |
20143124 |
박예준 |
Black |
20192884 |
박지원 |
Black |
20154224 |
박지훈 |
Black |
20192887 |
박진우 |
Black |
20165511 |
박혜정 |
Black |
20182116 |
백경민 |
Black |
20193223 |
서재현 |
Black |
20162856 |
손동민 |
Black |
20163525 |
신윤정 |
Black |
20155146 |
유일송 |
Black |
20183524 |
유하빈 |
Black |
20163634 |
육예진 |
Black |
20153144 |
윤석환 |
Black |
20172624 |
윤은영 |
Black |
20174138 |
윤정환 |
Black |
20196630 |
이건상 |
Black |
20141322 |
이건우 |
Black |
20162872 |
이경민 |
Black |
20121434 |
이군로 |
Black |
20183238 |
이예진 |
Black |
20196521 |
이완택 |
Black |
20155149 |
이용하 |
Black |
20193240 |
이재현 |
Black |
20183240 |
이주영 |
Black |
20182564 |
이지수 |
Black |
20193243 |
이현준 |
Black |
20193729 |
임정우 |
Black |
20165329 |
장우영 |
Black |
20155160 |
정국진 |
Black |
20193250 |
정민우 |
Black |
20165333 |
정성관 |
Black |
20195247 |
정원석 |
Black |
20163039 |
정현욱 |
Black |
20193255 |
정훈기 |
Black |
20144257 |
조중현 |
Black |
20165336 |
주철현 |
Black |
20192999 |
진승재 |
Black |
20145259 |
최동연 |
Black |
20152136 |
최상민 |
Black |
20193259 |
최용준 |
Black |
20183254 |
최윤수 |
Black |
20196426 |
최지수 |
Black |
20193351 |
추현호 |
Black |
20135357 |
한승탁 |
Black |
20196532 |
한승호 |
Black |
20162439 |
한지원 |
Black |
20165531 |
허세미 |
Black |
20193014 |
홍연진 |
Black |
20162143 |
홍자영 |
Black |
20155175 |
황영조 |
# pander(class_roll)
# table("단과대학" = class_roll$college, "그룹" = class_roll$group)
Red
3 |
20163401 |
강민주 |
6 |
20195284 |
강지석 |
11 |
20176206 |
구다영 |
14 |
20145208 |
권준영 |
15 |
20192304 |
권현정 |
16 |
20193205 |
권혜수 |
19 |
20162509 |
김미연 |
20 |
20193808 |
김민재 |
22 |
20196207 |
김선우 |
24 |
20196208 |
김성훈 |
25 |
20192519 |
김수경 |
26 |
20196211 |
김수정 |
27 |
20172512 |
김수지 |
28 |
20165306 |
김승현 |
29 |
20193210 |
김여준 |
30 |
20195131 |
김용우 |
34 |
20182106 |
김윤희 |
37 |
20192209 |
김진규 |
39 |
20173516 |
김현구 |
44 |
20195149 |
김현화 |
46 |
20155120 |
김휘진 |
47 |
20143311 |
김희수 |
49 |
20132111 |
류붓샘 |
50 |
20153613 |
류지은 |
51 |
20143507 |
문도선 |
53 |
20196230 |
박근휘 |
55 |
20192538 |
박선웅 |
57 |
20163313 |
박성민 |
58 |
20175313 |
박성중 |
59 |
20182870 |
박수용 |
63 |
20192543 |
박인성 |
67 |
20165132 |
박진우 |
68 |
20161610 |
박현성 |
70 |
20132409 |
방극찬 |
72 |
20182884 |
백두산 |
73 |
20134124 |
서승원 |
76 |
20155132 |
송시호 |
77 |
20195186 |
송예찬 |
78 |
20192902 |
신명진 |
80 |
20192550 |
신윤철 |
81 |
20155136 |
심창현 |
82 |
20165320 |
어형규 |
83 |
20192915 |
오미나 |
84 |
20194130 |
오유빈 |
91 |
20181715 |
이강민 |
92 |
20196629 |
이강혁 |
97 |
20161064 |
이기복 |
98 |
20173531 |
이상섭 |
99 |
20192567 |
이수지 |
100 |
20172626 |
이슬이 |
101 |
20192569 |
이승윤 |
102 |
20192945 |
이승효 |
107 |
20192954 |
이정아 |
108 |
20192957 |
이제훈 |
112 |
20192132 |
이혜윤 |
113 |
20186275 |
임성룡 |
115 |
20165328 |
임지환 |
116 |
20193246 |
장수빈 |
118 |
20192350 |
장인영 |
119 |
20183732 |
장지연 |
120 |
20153160 |
장효준 |
121 |
20192135 |
전소혜 |
122 |
20163427 |
전혜림 |
126 |
20183246 |
정수빈 |
128 |
20112355 |
정윤진 |
131 |
20155164 |
조규호 |
132 |
20196641 |
조승현 |
134 |
20155341 |
조하림 |
135 |
20186294 |
조하연 |
137 |
20186296 |
지용주 |
139 |
20173541 |
채성혁 |
140 |
20196289 |
최기태 |
143 |
20163963 |
최승규 |
145 |
20163258 |
최우헌 |
148 |
20192587 |
최호성 |
150 |
20192588 |
표가영 |
151 |
20192237 |
한승용 |
154 |
20162922 |
한원석 |
158 |
20183262 |
홍예은 |
160 |
20155174 |
황승현 |
Black
1 |
20198043 |
TUMUROCHIR NOMINERDENE |
2 |
20192701 |
강미서 |
4 |
20193201 |
강선영 |
5 |
20193202 |
강정민 |
7 |
20162802 |
강태수 |
8 |
20196501 |
고민재 |
9 |
20196601 |
고진규 |
10 |
20135303 |
공준범 |
12 |
20165302 |
구영모 |
13 |
20196203 |
권민서 |
17 |
20145104 |
김건형 |
18 |
20153704 |
김권리 |
21 |
20196505 |
김상현 |
23 |
20153109 |
김성렬 |
31 |
20182838 |
김용해 |
32 |
20196216 |
김원 |
33 |
20165217 |
김유진 |
35 |
20196217 |
김이정 |
36 |
20192107 |
김주리 |
38 |
20153115 |
김철원 |
40 |
20155216 |
김현성 |
41 |
20195148 |
김현식 |
42 |
20131736 |
김현욱 |
43 |
20142539 |
김현준 |
45 |
20195151 |
김홍의 |
48 |
20191514 |
당빈 |
52 |
20192534 |
민가흔 |
54 |
20115131 |
박명진 |
56 |
20191046 |
박성근 |
60 |
20192415 |
박승희 |
61 |
20192541 |
박영상 |
62 |
20143124 |
박예준 |
64 |
20192884 |
박지원 |
65 |
20154224 |
박지훈 |
66 |
20192887 |
박진우 |
69 |
20165511 |
박혜정 |
71 |
20182116 |
백경민 |
74 |
20193223 |
서재현 |
75 |
20162856 |
손동민 |
79 |
20163525 |
신윤정 |
85 |
20155146 |
유일송 |
86 |
20183524 |
유하빈 |
87 |
20163634 |
육예진 |
88 |
20153144 |
윤석환 |
89 |
20172624 |
윤은영 |
90 |
20174138 |
윤정환 |
93 |
20196630 |
이건상 |
94 |
20141322 |
이건우 |
95 |
20162872 |
이경민 |
96 |
20121434 |
이군로 |
103 |
20183238 |
이예진 |
104 |
20196521 |
이완택 |
105 |
20155149 |
이용하 |
106 |
20193240 |
이재현 |
109 |
20183240 |
이주영 |
110 |
20182564 |
이지수 |
111 |
20193243 |
이현준 |
114 |
20193729 |
임정우 |
117 |
20165329 |
장우영 |
123 |
20155160 |
정국진 |
124 |
20193250 |
정민우 |
125 |
20165333 |
정성관 |
127 |
20195247 |
정원석 |
129 |
20163039 |
정현욱 |
130 |
20193255 |
정훈기 |
133 |
20144257 |
조중현 |
136 |
20165336 |
주철현 |
138 |
20192999 |
진승재 |
141 |
20145259 |
최동연 |
142 |
20152136 |
최상민 |
144 |
20193259 |
최용준 |
146 |
20183254 |
최윤수 |
147 |
20196426 |
최지수 |
149 |
20193351 |
추현호 |
152 |
20135357 |
한승탁 |
153 |
20196532 |
한승호 |
155 |
20162439 |
한지원 |
156 |
20165531 |
허세미 |
157 |
20193014 |
홍연진 |
159 |
20162143 |
홍자영 |
161 |
20155175 |
황영조 |