e-campus의 온라인 접속횟수 기록을 다운로드 받은 엑셀 파일에서 필요한 부분을 발췌한 자료 읽어들이기.
class.roll<-read.table("class_roll.txt", header=TRUE, sep="")
red 군에 속할 ID를 랜덤추출하는 과정. 우선, red 에 속할 인덱스를 추출하고, ifelse()를 이용하여 red 군과 black 군 구분. %in% 의 용법에 유의. factor()로 설정하는 이유를 생각해 볼 것.
red.id<-sample(1:71, size=35)
red.id
## [1] 20 60 57 69 11 2 48 44 25 35 53 36 45 19 59 52 71 9 26 18 17 33 1
## [24] 15 46 27 28 54 41 67 29 6 58 4 50
class.roll$group<-factor(ifelse((1:71) %in% red.id, "red", "black"), levels=c("red", "black"))
randomization이 적절히 이루어졌는지 기초통계값으로 확인. 만족스럽지 않으면 앞의 과정 반복.
tapply(class.roll$n.accesses,class.roll$group,summary)
## $red
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 35.00 49.00 62.03 84.50 190.00
##
## $black
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 37.00 51.00 64.25 84.75 209.00
Boxplot 으로 확인.
boxplot(n.accesses~group,data=class.roll)
Empirical CDF 로 확인. 먼저 black.id 를 red.id 아닌 인덱스 로 정의
black.id<-(1:71)[-red.id]
plot(ecdf(class.roll$n.accesses[red.id]), col="red",main="표본누적분포함수")
lines(ecdf(class.roll$n.accesses[black.id]), pch=15)
legend(x=0,y=0.9,legend=c("red","black"),pch=16:15,col=c("red","black"))
13학번 이후와 12학번 이전으로 ID 구분. n.accesses 를 100 회 기준, 혹은 50회 기준으로 나누어 randomization의 효과 확인. table()의 value를 잘 파악하기 위하여 어떤 조치들을 취하였는지 잘 살필 것. factor()로 굳이 설정한 것, dnn=NULL 이 있고 없고의 차이들을 잘 파악할 것.
ID.13<-factor(ifelse(substr(class.roll$ID, 1, 4) >= 2013, "younger.13", "older.13"), levels=c("younger.13", "older.13"))
table(ID.13)
## ID.13
## younger.13 older.13
## 36 35
table(ID.13[red.id])
##
## younger.13 older.13
## 15 20
table(ID.13[black.id])
##
## younger.13 older.13
## 21 15
ID.12<-factor(ifelse(substr(class.roll$ID, 1, 4) >= 2012, "younger.12", "older.12"), levels=c("younger.12", "older.12"))
table(ID.12)
## ID.12
## younger.12 older.12
## 46 25
table(ID.12[red.id])
##
## younger.12 older.12
## 23 12
table(ID.12[black.id])
##
## younger.12 older.12
## 23 13
n.accesses.100<-factor(ifelse(class.roll$n.accesses >= 100, "above 100", "less than 100"), levels=c("above 100", "less than 100"))
table(n.accesses.100)
## n.accesses.100
## above 100 less than 100
## 11 60
table(n.accesses.100[red.id])
##
## above 100 less than 100
## 4 31
table(n.accesses.100[black.id])
##
## above 100 less than 100
## 7 29
n.accesses.50<-factor(ifelse(class.roll$n.accesses >= 50, "above 50", "less than 50"), levels=c("above 50", "less than 50"))
table(n.accesses.50)
## n.accesses.50
## above 50 less than 50
## 36 35
table(n.accesses.50[red.id])
##
## above 50 less than 50
## 17 18
table(n.accesses.50[black.id])
##
## above 50 less than 50
## 19 17