Data

load("./red_and_black_170829_data.RData")
class_roll0829 <- class_roll
class_roll <- read.xlsx("../data/class_roll0901.xlsx", 
                        sheetIndex = 1, 
                        startRow = 2, 
                        endRow = 180, 
                        colIndex = c(3:7, 9), 
                        colClasses = rep("character", 6), 
                        stringsAsFactors = FALSE)
class_roll0831 <- read.xlsx("../data/class_roll0831.xlsx", 
                        sheetIndex = 1, 
                        startRow = 2, 
                        endRow = 182, 
                        colIndex = c(3:7, 9), 
                        colClasses = rep("character", 6), 
                        stringsAsFactors = FALSE)
names(class_roll) <- c("dept", "id", "name", "year", "e.mail", "cell.no")
names(class_roll0831) <- c("dept", "id", "name", "year", "e.mail", "cell.no")
class_roll0829$mark1 <- "0829"
class_roll0831$mark2 <- "0831"
class_roll$mark3 <- "0901"
class_roll.merged.0831 <- merge(class_roll0829, class_roll0831, all = TRUE)
class_roll.merged <- merge(class_roll.merged.0831, class_roll, all = TRUE)
pander(class_roll.merged[, 7:10])
group mark1 mark2 mark3
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 NA NA
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 NA
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
NA NA NA 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
NA NA NA 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 NA
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 NA
Black 0829 NA NA
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
NA NA 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
NA NA 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
NA NA 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
NA NA 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 NA
Black 0829 0831 NA
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 NA NA
Red 0829 0831 0901
Black 0829 0831 0901
NA NA NA 0901
Red 0829 0831 0901
Black 0829 0831 0901
NA NA 0831 0901
Red 0829 0831 0901
NA NA 0831 0901
Black 0829 NA NA
Red 0829 NA NA
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
NA NA 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 NA
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
NA NA NA 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 NA
NA NA NA 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 NA NA
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
NA NA NA 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
NA NA 0831 0901
NA NA 0831 NA
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 NA NA
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 NA
Black 0829 NA NA
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 NA
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Black 0829 0831 0901
Red 0829 0831 0901
Red 0829 NA NA
Red 0829 0831 0901
Red 0829 0831 0901
Red 0829 0831 0901
Black 0829 0831 0901
NA NA NA 0901
Black 0829 0831 0901
NA NA NA 0901
pander(class_roll.merged[is.na(class_roll.merged$mark3), 7:10])
  group mark1 mark2 mark3
10 Red 0829 NA NA
21 Black 0829 0831 NA
34 Black 0829 0831 NA
38 Red 0829 0831 NA
39 Black 0829 NA NA
65 Red 0829 0831 NA
66 Black 0829 0831 NA
73 Red 0829 NA NA
82 Black 0829 NA NA
83 Red 0829 NA NA
93 Black 0829 0831 NA
106 Red 0829 0831 NA
119 Black 0829 NA NA
144 NA NA 0831 NA
149 Red 0829 NA NA
160 Red 0829 0831 NA
161 Black 0829 NA NA
184 Black 0829 0831 NA
190 Red 0829 NA NA
table(class_roll.merged[is.na(class_roll.merged$mark3), 7:10]$group)
## 
##   Red Black 
##     9     9
id0829 <- class_roll0829$id
id0831 <- class_roll0831$id
id0901 <- class_roll$id
stay0831 <- intersect(id0829, id0831)
length(stay0831)
## [1] 171
stay0901 <- intersect(id0831, id0901)
length(stay0901)
## [1] 170
stay <- intersect(intersect(id0829, id0831), id0901)
stay02 <- intersect(id0829, id0901)
stay == stay02
##   [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [15] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [29] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [43] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [57] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [71] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [85] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [99] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [113] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [127] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [141] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [155] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
new_id <- setdiff(id0901, stay)
class_roll.stay <- subset(class_roll0829, id %in% stay)
class_roll.new <- subset(class_roll, id %in% new_id)
# pander(class_roll.stay)
# pander(class_roll.new)
str(class_roll)
## 'data.frame':    178 obs. of  7 variables:
##  $ dept   : chr  "컴퓨터공학과" "전자공학과" "언어청각학부" "융합소프트웨어학과" ...
##  $ id     : chr  "20175101" "20145203" "20173903" "20165301" ...
##  $ name   : chr  "강동인" "강민영" "강정수" "강종근" ...
##  $ year   : chr  "1" "2" "1" "2" ...
##  $ e.mail : chr  "kdi6316@naver.com" "rf3935@naver.com" "jungsu009@naver.com" "whdrms1859@naver.com" ...
##  $ cell.no: chr  "010-2494-6316" "010-3975-1808" "010-6700-2931" "010-2300-3921" ...
##  $ mark3  : chr  "0901" "0901" "0901" "0901" ...

Randomization New Kids Only

set.seed(1)
N <- nrow(class_roll.new) 
class_roll.new$group <- sample(1:N) %% 2 + 1
class_roll.new$group <- factor(class_roll.new$group, 
                           labels = c("Red", "Black"))
class_roll.new <- class_roll.new[, c(1:6, 8, 7)]
names(class_roll.new)[8] <- "mark"
names(class_roll.stay)[8] <- "mark"
red.id <- which(class_roll.new$group == "Red")
black.id <- which(class_roll.new$group == "Black")
class_roll <- rbind(class_roll.stay, class_roll.new)

Randomization for All

set.seed(15)
N <- nrow(class_roll) 
class_roll$group <- sample(1:N) %% 2 + 1
class_roll$group <- factor(class_roll$group, 
                           labels = c("Red", "Black"))
red.id <- which(class_roll$group == "Red")
black.id <- which(class_roll$group == "Black")

학번

ID.16 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2016, 
                       "younger.16", "older.16"), 
                levels = c("younger.16", "older.16"))
pander(table("16학번 기준" = ID.16, 
             "그룹" = class_roll$group))
  Red Black
younger.16 48 48
older.16 41 41
# table("16학번 기준" = ID.16, 
#             "그룹" = class_roll$group)
ID.15 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2015, 
                       "younger.15", "older.15"), 
                levels = c("younger.15", "older.15"))
pander(table("15학번 기준" = ID.15, 
             "그룹" = class_roll$group))
  Red Black
younger.15 55 57
older.15 34 32
ID.14 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2014, 
                       "younger.14", "older.14"), 
                levels = c("younger.14", "older.14"))
pander(table("14학번 기준" = ID.14, 
             "그룹" = class_roll$group))
  Red Black
younger.14 73 73
older.14 16 16
ID.13 <- factor(ifelse(substr(class_roll$id, 1, 4) >= 2013, 
                       "younger.13", "older.13"), 
                levels = c("younger.13", "older.13"))
pander(table("13학번 기준" = ID.13, 
             "그룹" = class_roll$group))
  Red Black
younger.13 79 81
older.13 10 8

학번 홀짝

odd.even <- as.numeric(class_roll$id) %% 2
pander(table("odd_even" = odd.even, 
             "Group"= class_roll$group))
  Red Black
0 42 44
1 47 45

e-mail 서비스업체

e.mail.list <- strsplit(class_roll$e.mail, "@", 
                        fixed = TRUE)
mail.com <- mapply(`[`, e.mail.list, 2)
pander(table("e-mail" = mail.com, 
             "그룹" = class_roll$group))
  Red Black
daum.net 3 2
gmail.com 4 4
hanmail.net 4 6
icloud.com 0 1
nate.com 3 6
naver.com 75 70

성씨 분포

f.name <- substring(class_roll$name, 
                    first = 1, 
                    last = 1)
pander(table("Family Name" = f.name, 
             "Group" = class_roll$group))
  Red Black
1 3
3 0
2 0
2 1
21 24
1 1
0 1
1 0
0 1
5 8
0 1
0 1
1 0
1 2
0 1
1 0
0 2
1 1
2 0
0 1
1 2
1 0
1 0
1 0
0 2
3 3
14 16
0 3
2 0
3 1
1 2
4 2
1 0
1 0
0 1
7 5
1 0
3 0
0 2
0 1
2 0
1 1

많이 나오는 성씨

f.name.f <- factor(ifelse(f.name %in% c("김", "이", "박"), 
                          f.name, "기타"), 
                   levels = c("김", "이", "박", "기타"))
pander(table("Group" = class_roll$group, 
             "Family Name" = f.name.f))
  기타
Red 21 14 5 49
Black 24 16 8 41

학과

# pander(class_roll)
pander(table("그룹" = class_roll$group, 
             "학과" = class_roll$dept))
  간호학 경영학과 경제학과 광고홍보학과 국어국문학전공 디지털미디어콘텐츠전공 러시아학과 바이오메디컬학과 법학과 사학전공 사회복지학 사회복지학부 사회학과 식품영양학과 심리학과 언론방송융합미디어전공 언어병리학전공 언어청각학부 융합소프트웨어학과 융합신소재공학과 융합인재학부 응용광물리학과 일본학과 재무금융학과 전자공학과 정치행정학과 중국학과 철학전공 청각학전공 체육학과 컴퓨터공학과 환경생명공학과
Red 2 7 4 0 1 0 0 1 5 2 1 3 4 0 6 1 1 3 6 5 0 4 1 4 10 2 2 0 9 0 5 0
Black 2 8 4 1 2 1 2 0 2 3 0 4 0 1 6 0 0 3 11 2 1 0 0 4 16 1 2 1 5 1 4 2