データの種類 | ファイル名 | コードブック |
---|---|---|
学校質問紙 | acgjpnm5 | ACGTMSM5 |
算数理科調査 | asajpnm5 | ASATMSM5 |
児童質問紙 | asgjpnm5 | ASGTMSM5 |
家庭背景 | ASHTMSM5 | |
国内信頼性 | asrjpnm5 | ASRTMSM5 |
教師-児童リンクファイル | astjpnm5 | ASTTMSM5 |
教師質問紙 | atgjpnm5 | ATGTMSM5 |
ここでは学校質問紙,算数理科調査,児童質問紙,教師-児童リンクファイル,教師質問紙のデータを取り込む。
acgjpnm5 <- read.csv("acgjpnm5.csv")
asajpnm5 <- read.csv("asajpnm5.csv")
asgjpnm5 <- read.csv("asgjpnm5.csv")
astjpnm5 <- read.csv("astjpnm5.csv")
atgjpnm5 <- read.csv("atgjpnm5.csv")
# astjpnm5のデータを使う
# 国私立学校はIDSCHOOLが1000以上のため
ko <- subset(astjpnm5, IDSCHOOL < 1000)
# 行数(児童数ではない)は以下の通り
nrow(ko)
## [1] 6685
# この中のSCIWGT (WEIGHT FOR SCIENCE TEACHER DATA)とTOTWGT (*STUDENT WEIGHT*)が一致するものが学級規模と学習集団規模が一致するケース
# 仮に1学級2展開の少人数指導を行っている場合にはSCIWGT*2 = TOTWGTとなる
solo <- subset(ko, SCIWGT==TOTWGT)
# 学校が減っていることが分かる
nrow(solo)
## [1] 4211
# table関数で簡単にデータを作る
con.mul <- table(solo$IDSTUD)
write.csv(con.mul,"con_mul.csv")
con.mul <- read.csv("con_mul.csv")
# IDSTUDに重複がないか
summary(con.mul$Freq)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1 1 1 1 1 1
school_ <- solo[c("IDSCHOOL")]
teacher_ <- solo[c("IDTEACH")]
student <- solo[c("IDSTUD")]
summary(school_)
## IDSCHOOL
## Min. : 1.00
## 1st Qu.: 38.00
## Median : 73.00
## Mean : 73.02
## 3rd Qu.:106.00
## Max. :150.00
summary(teacher_)
## IDTEACH
## Min. : 101
## 1st Qu.: 3801
## Median : 7301
## Mean : 7303
## 3rd Qu.:10601
## Max. :15001
summary(student)
## IDSTUD
## Min. : 10401
## 1st Qu.: 380204
## Median : 730417
## Mean : 730384
## 3rd Qu.:1060116
## Max. :1500131
## 大丈夫そうなのでschool_とteacher_については重複を取り除いてcsvで保存
write.csv(table(school_),"school_.csv")
school <- read.csv("school_.csv")
school <- school[c("school_")]
colnames(school) <- c("IDSCHOOL")
write.csv(school,"school.csv")
write.csv(table(teacher_),"teacher_.csv")
teacher <- read.csv("teacher_.csv")
teacher <- teacher[c("teacher_")]
colnames(teacher) <- c("IDTEACH")
write.csv(teacher,"teacher.csv")
write.csv(student,"student.csv")
# ```{r eval=TRUE, error=FALSE, message=FALSE, results='hide'}
file.remove("con_mul.csv")
file.remove("school_.csv")
file.remove("teacher_.csv")