Read the PISA data
library(haven)
pisa.dat <- read_spss("PISA_tawian2022_trimmed_lab.sav") # 請改成你的 PISA 檔名
1.Adding the z scores into our pisa dataset with a new name (= new
variable)
pisa.dat$ESCS.z <- scale(pisa.dat$ESCS, center = TRUE, scale = TRUE)[,1]
head(pisa.dat)
## # A tibble: 6 × 22
## CNT CNTSTUID NatCen Gender AGE ESCS REPEAT MISSSC SKIPPING
## <chr+lbl> <dbl> <chr+lbl> <dbl+l> <dbl> <dbl+> <dbl+l> <dbl+l> <dbl+lb>
## 1 TAP [Chines… 15800002 015… [Chi… 1 [Fem… 15.6 -0.322 0 [Nev… 0 [Nev… 0 [No c…
## 2 TAP [Chines… 15800003 015… [Chi… 1 [Fem… 15.8 0.156 0 [Nev… 0 [Nev… 0 [No c…
## 3 TAP [Chines… 15800004 015… [Chi… 2 [Mal… 16.1 -0.574 0 [Nev… 0 [Nev… 0 [No c…
## 4 TAP [Chines… 15800005 015… [Chi… 1 [Fem… 16.1 -0.818 0 [Nev… 0 [Nev… 0 [No c…
## 5 TAP [Chines… 15800007 015… [Chi… 2 [Mal… 16 0.511 0 [Nev… 0 [Nev… 0 [No c…
## 6 TAP [Chines… 15800008 015… [Chi… 1 [Fem… 15.5 0.287 0 [Nev… 0 [Nev… 0 [No c…
## # ℹ 13 more variables: WORKPAY <dbl+lbl>, MATHMOT <dbl+lbl>, RELATST <dbl+lbl>,
## # BELONG <dbl+lbl>, STRESAGR <dbl+lbl>, GROSAGR <dbl+lbl>,
## # TEACHSUP <dbl+lbl>, ANXMAT <dbl+lbl>, MATHPERS <dbl+lbl>, PV1MATH <dbl>,
## # PV1READ <dbl>, PV1SCIE <dbl>, ESCS.z <dbl>
2. Compute descriptive statistics for the z-score of ESCS
library(psych)
summary(pisa.dat$ESCS.z)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -3.94341 -0.73905 0.03678 0.00000 0.78318 4.94265
describe(pisa.dat$ESCS.z)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 5599 0 1 0.04 0.03 1.13 -3.94 4.94 8.89 -0.18 -0.31 0.01
3. Creating histogram
Histogram using hist function
hist(pisa.dat$ESCS.z)

Alternative package and function to create a histogram
library(ggplot2)
# dataset:
data=data.frame(pisa.dat$ESCS.z)
head(data)
## pisa.dat.ESCS.z
## 1 -0.05739356
## 2 0.47097225
## 3 -0.33526585
## 4 -0.60474787
## 5 0.86244429
## 6 0.61515231
# basic histogram
p <- ggplot(data, aes(x=pisa.dat.ESCS.z)) +
geom_histogram() #x=new variable name in the dataframe
p

p1 <- ggplot(data, aes(x=pisa.dat.ESCS.z)) +
geom_histogram(binwidth=0.5) #change binwidth of the histograms
p1
