這是期中考試的進一步分析。除了整體成績的summary外,以 GGplot2 強大的圖形功能來比較大二(2)以及大三以上同學(3+) 期中考成績。

Data Input

exam <- read.delim("~/akno/andy/work/edu/18/i2p/midscore.txt");
colnames(exam)<-c("sid","mid");
attach(exam)
year<-(sid > 410600000)*1
exam$year<- factor(year, levels=c(1,0), labels=c("2", "3+"))
summary(mid); summary(exam$year)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   25.00   40.00   41.91   58.00  101.00 
 2 3+ 
37 53 
sd(mid)
[1] 23.24836
stem(mid)

  The decimal point is 1 digit(s) to the right of the |

   0 | 00555550003355578
   2 | 0003355589000233333555555
   4 | 000002355780000355555578889
   6 | 0225588000000359
   8 | 0050
  10 | 1

Normality check (plain way)

par(mfrow=c(2,2));    # Setup the graphical device
# I use "mid" as the variable, you can try the command on "final"
hist(mid); boxplot(mid); qqnorm(mid);
plot(density(mid));

Compare and contrast: 2 vs. 3+

library(ggplot2, quietly = T)
RStudio Community is a great place to get help: https://community.rstudio.com/c/tidyverse.
qplot(mid, data = exam, geom = "density", adjust = .6)

qplot(mid, ..density.., data = exam, geom = c("histogram", "density"))

qplot(mid, data = exam, geom = "histogram", fill = year)

qplot(mid, data = exam, geom = "density",
  color = year, adjust = .6)

qplot(mid, ..density.., data = exam, geom = c("histogram", "density"),
  color = year)

qplot(mid, data = exam, facets = year ~ .,
  geom = c("histogram", "density"))

p <- ggplot(exam, aes(year, mid));
p + geom_boxplot(fill = "white", colour = "#3366FF")+ geom_boxplot(outlier.colour = "red", outlier.shape = 1);

# By default, outlier points match the colour of the box. Use
# outlier.colour to override
#p + geom_boxplot(outlier.colour = "red", outlier.shape = 1);
# Boxplots are automatically dodged when any aesthetic is a factor
p + geom_boxplot(aes(colour = year)) + geom_jitter(width = 0.2)

qplot(year, mid, data = exam, geom = c("boxplot", "jitter"),
   fill = year, main = "Midterm Scores by 2 vs. 3+",
   xlab = "Year", ylab = "Scores")

LS0tCnRpdGxlOiAiUiBOb3RlYm9vazogTWlkdGVybSBTdW1tYXJ5OiAyIHZzIDMrIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCumAmeaYr+acn+S4reiAg+ippueahOmAsuS4gOatpeWIhuaekOOAgumZpOS6huaVtOmrlOaIkOe4vueahHN1bW1hcnnlpJbvvIzku6UgR0dwbG90MiDlvLflpKfnmoTlnJblvaLlip/og73kvobmr5TovIPlpKfkuowoMinku6Xlj4rlpKfkuInku6XkuIrlkIzlrbgoMyspCuacn+S4reiAg+aIkOe4vuOAggoKCkRhdGEgSW5wdXQKYGBge3J9CmV4YW0gPC0gcmVhZC5kZWxpbSgifi9ha25vL2FuZHkvd29yay9lZHUvMTgvaTJwL21pZHNjb3JlLnR4dCIpOwpjb2xuYW1lcyhleGFtKTwtYygic2lkIiwibWlkIik7CmF0dGFjaChleGFtKQp5ZWFyPC0oc2lkID4gNDEwNjAwMDAwKSoxCmV4YW0keWVhcjwtIGZhY3Rvcih5ZWFyLCBsZXZlbHM9YygxLDApLCBsYWJlbHM9YygiMiIsICIzKyIpKQoKYGBgCgpgYGB7cn0Kc3VtbWFyeShtaWQpOyBzdW1tYXJ5KGV4YW0keWVhcikKc2QobWlkKQoKc3RlbShtaWQpCmBgYApOb3JtYWxpdHkgY2hlY2sgKHBsYWluIHdheSkKYGBge3J9CnBhcihtZnJvdz1jKDIsMikpOyAgICAjIFNldHVwIHRoZSBncmFwaGljYWwgZGV2aWNlCiMgSSB1c2UgIm1pZCIgYXMgdGhlIHZhcmlhYmxlLCB5b3UgY2FuIHRyeSB0aGUgY29tbWFuZCBvbiAiZmluYWwiCmhpc3QobWlkKTsgYm94cGxvdChtaWQpOyBxcW5vcm0obWlkKTsKcGxvdChkZW5zaXR5KG1pZCkpOwpgYGAKCgpDb21wYXJlIGFuZCBjb250cmFzdDogMiB2cy4gMysKCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIsIHF1aWV0bHkgPSBUKQoKcXBsb3QobWlkLCBkYXRhID0gZXhhbSwgZ2VvbSA9ICJkZW5zaXR5IiwgYWRqdXN0ID0gLjYpCnFwbG90KG1pZCwgLi5kZW5zaXR5Li4sIGRhdGEgPSBleGFtLCBnZW9tID0gYygiaGlzdG9ncmFtIiwgImRlbnNpdHkiKSkKcXBsb3QobWlkLCBkYXRhID0gZXhhbSwgZ2VvbSA9ICJoaXN0b2dyYW0iLCBmaWxsID0geWVhcikKcXBsb3QobWlkLCBkYXRhID0gZXhhbSwgZ2VvbSA9ICJkZW5zaXR5IiwKICBjb2xvciA9IHllYXIsIGFkanVzdCA9IC42KQpxcGxvdChtaWQsIC4uZGVuc2l0eS4uLCBkYXRhID0gZXhhbSwgZ2VvbSA9IGMoImhpc3RvZ3JhbSIsICJkZW5zaXR5IiksCiAgY29sb3IgPSB5ZWFyKQpxcGxvdChtaWQsIGRhdGEgPSBleGFtLCBmYWNldHMgPSB5ZWFyIH4gLiwKICBnZW9tID0gYygiaGlzdG9ncmFtIiwgImRlbnNpdHkiKSkKYGBgCgoKYGBge3J9CnAgPC0gZ2dwbG90KGV4YW0sIGFlcyh5ZWFyLCBtaWQpKTsKcCArIGdlb21fYm94cGxvdChmaWxsID0gIndoaXRlIiwgY29sb3VyID0gIiMzMzY2RkYiKSsgZ2VvbV9ib3hwbG90KG91dGxpZXIuY29sb3VyID0gInJlZCIsIG91dGxpZXIuc2hhcGUgPSAxKTsKIyBCeSBkZWZhdWx0LCBvdXRsaWVyIHBvaW50cyBtYXRjaCB0aGUgY29sb3VyIG9mIHRoZSBib3guIFVzZQojIG91dGxpZXIuY29sb3VyIHRvIG92ZXJyaWRlCiNwICsgZ2VvbV9ib3hwbG90KG91dGxpZXIuY29sb3VyID0gInJlZCIsIG91dGxpZXIuc2hhcGUgPSAxKTsKCiMgQm94cGxvdHMgYXJlIGF1dG9tYXRpY2FsbHkgZG9kZ2VkIHdoZW4gYW55IGFlc3RoZXRpYyBpcyBhIGZhY3RvcgpwICsgZ2VvbV9ib3hwbG90KGFlcyhjb2xvdXIgPSB5ZWFyKSkgKyBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMikKYGBgCgpgYGB7cn0KCnFwbG90KHllYXIsIG1pZCwgZGF0YSA9IGV4YW0sIGdlb20gPSBjKCJib3hwbG90IiwgImppdHRlciIpLAogICBmaWxsID0geWVhciwgbWFpbiA9ICJNaWR0ZXJtIFNjb3JlcyBieSAyIHZzLiAzKyIsCiAgIHhsYWIgPSAiWWVhciIsIHlsYWIgPSAiU2NvcmVzIikKYGBgCgo=