install.packages("https://cran.rstudio.com/bin/windows/contrib/4.1/faraway_1.0.7.zip", repos = NULL)
## 將程式套件安載入 'C:/Users/user/Documents/R/win-library/4.1'
## (因為 'lib' 沒有被指定)
## package 'faraway' successfully unpacked and MD5 sums checked
library(faraway)
## Warning: 套件 'faraway' 是用 R 版本 4.1.2 來建造的
head(hsb)
##    id gender  race    ses schtyp     prog read write math science socst
## 1  70   male white    low public  general   57    52   41      47    57
## 2 121 female white middle public vocation   68    59   53      63    61
## 3  86   male white   high public  general   44    33   54      58    31
## 4 141   male white   high public vocation   63    44   47      53    56
## 5 172   male white middle public academic   47    52   57      53    61
## 6 113   male white middle public academic   44    52   51      63    61
str(hsb)
## 'data.frame':    200 obs. of  11 variables:
##  $ id     : int  70 121 86 141 172 113 50 11 84 48 ...
##  $ gender : Factor w/ 2 levels "female","male": 2 1 2 2 2 2 2 2 2 2 ...
##  $ race   : Factor w/ 4 levels "african-amer",..: 4 4 4 4 4 4 1 3 4 1 ...
##  $ ses    : Factor w/ 3 levels "high","low","middle": 2 3 1 1 3 3 3 3 3 3 ...
##  $ schtyp : Factor w/ 2 levels "private","public": 2 2 2 2 2 2 2 2 2 2 ...
##  $ prog   : Factor w/ 3 levels "academic","general",..: 2 3 2 3 1 1 2 1 2 1 ...
##  $ read   : int  57 68 44 63 47 44 50 34 63 57 ...
##  $ write  : int  52 59 33 44 52 52 59 46 57 55 ...
##  $ math   : int  41 53 54 47 57 51 42 45 54 52 ...
##  $ science: int  47 63 58 53 53 63 53 39 58 50 ...
##  $ socst  : int  57 61 31 56 61 61 61 36 51 51 ...
summary(hsb)
##        id            gender              race         ses         schtyp   
##  Min.   :  1.00   female:109   african-amer: 20   high  :58   private: 32  
##  1st Qu.: 50.75   male  : 91   asian       : 11   low   :47   public :168  
##  Median :100.50                hispanic    : 24   middle:95                
##  Mean   :100.50                white       :145                            
##  3rd Qu.:150.25                                                            
##  Max.   :200.00                                                            
##        prog          read           write            math          science     
##  academic:105   Min.   :28.00   Min.   :31.00   Min.   :33.00   Min.   :26.00  
##  general : 45   1st Qu.:44.00   1st Qu.:45.75   1st Qu.:45.00   1st Qu.:44.00  
##  vocation: 50   Median :50.00   Median :54.00   Median :52.00   Median :53.00  
##                 Mean   :52.23   Mean   :52.77   Mean   :52.65   Mean   :51.85  
##                 3rd Qu.:60.00   3rd Qu.:60.00   3rd Qu.:59.00   3rd Qu.:58.00  
##                 Max.   :76.00   Max.   :67.00   Max.   :75.00   Max.   :74.00  
##      socst      
##  Min.   :26.00  
##  1st Qu.:46.00  
##  Median :52.00  
##  Mean   :52.41  
##  3rd Qu.:61.00  
##  Max.   :71.00
install.packages("moments", repos='https://cran.rstudio.com/')
## 將程式套件安載入 'C:/Users/user/Documents/R/win-library/4.1'
## (因為 'lib' 沒有被指定)
## package 'moments' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\user\AppData\Local\Temp\RtmpWGmT18\downloaded_packages
library(moments)
## Warning: 套件 'moments' 是用 R 版本 4.1.1 來建造的
#不同性別學生在五個科目上的平均數
aggregate(cbind(read, write, math, science, socst) ~ gender, data = hsb, mean)
##   gender     read    write     math  science    socst
## 1 female 51.73394 54.99083 52.39450 50.69725 52.91743
## 2   male 52.82418 50.12088 52.94505 53.23077 51.79121
#不同性別學生在五個科目上的標準差
aggregate(cbind(read, write, math, science, socst) ~ gender, data = hsb, sd)
##   gender     read     write     math   science    socst
## 1 female 10.05783  8.133715 9.151015  9.038503 10.23441
## 2   male 10.50671 10.305161 9.664784 10.732171 11.33384
#不同性別學生在五個科目上的偏態
aggregate(cbind(read, write, math, science, socst) ~ gender, data = hsb, skewness)
##   gender       read      write      math   science      socst
## 1 female 0.32341745 -0.5899993 0.2346739 -0.130718 -0.3532812
## 2   male 0.04674873 -0.1798980 0.3256960 -0.345221 -0.3713532
#不同性別學生在五個科目上的峰度
aggregate(cbind(read, write, math, science, socst) ~ gender, data = hsb, kurtosis)
##   gender     read    write     math  science    socst
## 1 female 2.500028 2.544105 2.284784 2.510875 2.519207
## 2   male 2.262737 1.872877 2.356806 2.371868 2.335229
#不同種族學生在五個科目上的平均數
aggregate(cbind(read, write, math, science, socst) ~ race, data = hsb, mean)
##           race     read    write     math  science    socst
## 1 african-amer 46.80000 48.20000 46.75000 42.80000 49.45000
## 2        asian 51.90909 58.00000 57.27273 51.45455 51.00000
## 3     hispanic 46.66667 46.45833 47.41667 45.37500 47.79167
## 4        white 53.92414 54.05517 53.97241 54.20000 53.68276
#不同種族學生在五個科目上的標準差
aggregate(cbind(read, write, math, science, socst) ~ race, data = hsb, sd)
##           race      read    write      math  science     socst
## 1 african-amer  7.120024 9.322299  6.487843 9.445690 10.850540
## 2        asian  7.660999 7.899367 10.120187 9.490665  9.746794
## 3     hispanic 10.239169 8.272422  6.983936 8.218815  9.250049
## 4        white 10.276783 9.172558  9.383011 9.094870 10.813253
#不同種族學生在五個科目上的偏態
aggregate(cbind(read, write, math, science, socst) ~ race, data = hsb, skewness)
##           race        read      write       math    science      socst
## 1 african-amer  0.56341685  0.2445555  1.5769616  0.1618054 -0.3779222
## 2        asian -0.14903573 -0.8732263 -0.2921502 -0.3239360  0.3398069
## 3     hispanic  0.64286691  0.3420989  0.1538455  0.2121507  0.1741367
## 4        white  0.05686143 -0.7452076  0.1120681 -0.2394562 -0.5568882
#不同種族學生在五個科目上的峰度
aggregate(cbind(read, write, math, science, socst) ~ race, data = hsb, kurtosis)
##           race     read    write     math  science    socst
## 1 african-amer 4.394131 2.069851 5.739716 1.833490 2.553280
## 2        asian 2.457166 2.518799 1.843283 2.240411 2.849030
## 3     hispanic 3.381917 2.777992 2.494265 3.361737 2.218556
## 4        white 2.203770 2.710911 2.351510 2.506333 2.641000
names(hsb)
##  [1] "id"      "gender"  "race"    "ses"     "schtyp"  "prog"    "read"   
##  [8] "write"   "math"    "science" "socst"
with(hsb, aggregate(hsb[, 7:11], by = list(gender, race), FUN = mean))
##   Group.1      Group.2     read    write     math  science    socst
## 1  female african-amer 46.76923 48.84615 47.53846 40.69231 49.69231
## 2    male african-amer 46.85714 47.00000 45.28571 46.71429 49.00000
## 3  female        asian 51.75000 58.87500 56.75000 50.87500 52.25000
## 4    male        asian 52.33333 55.66667 58.66667 53.00000 47.66667
## 5  female     hispanic 45.90909 48.90909 45.27273 45.18182 50.27273
## 6    male     hispanic 47.30769 44.38462 49.23077 45.53846 45.69231
## 7  female        white 53.40260 56.49351 53.77922 53.15584 53.90909
## 8    male        white 54.51471 51.29412 54.19118 55.38235 53.42647
with(hsb, aggregate(hsb[, 7:11], by = list(gender, race), FUN = sd))
##   Group.1      Group.2       read     write      math   science     socst
## 1  female african-amer  7.2933057  9.546781  7.378069  9.525270 11.535341
## 2    male african-amer  7.3581830  9.504385  4.535574  8.577379 10.311806
## 3  female        asian  9.1456469  7.529703 11.106626 10.920982 10.606602
## 4    male        asian  0.5773503 10.115994  8.736895  5.291503  7.637626
## 5  female     hispanic 12.2429943  6.744695  6.842381  5.492143  9.100450
## 6    male     hispanic  8.6639542  9.115358  6.833177 10.211231  9.195874
## 7  female        white  9.7969648  7.261331  8.807329  7.691528 10.136154
## 8    male        white 10.8373217 10.317438 10.056938 10.392347 11.603288
with(hsb, aggregate(hsb[, 7:11], by = list(gender, race), FUN = skewness))
##   Group.1      Group.2       read      write        math     science
## 1  female african-amer  1.0908453  0.2163986  1.48488184  0.73940428
## 2    male african-amer -0.5014614  0.2805474  0.21617314 -0.98118254
## 3  female        asian -0.0720213 -0.8936840 -0.18751759 -0.15405549
## 4    male        asian  0.7071068 -0.6993411 -0.45563859 -0.59517006
## 5  female     hispanic  0.8336115  0.4399599 -0.07735766  0.56561271
## 6    male     hispanic  0.3505098  0.6740362  0.38302113  0.10751219
## 7  female        white  0.2652688 -0.8495136  0.05270082  0.01337789
## 8    male        white -0.1477733 -0.3818725  0.14096486 -0.50797997
##         socst
## 1 -0.30003839
## 2 -0.64522406
## 3  0.13198759
## 4  0.38180177
## 5  0.43962390
## 6  0.01372901
## 7 -0.49165481
## 8 -0.58469114
with(hsb, aggregate(hsb[, 7:11], by = list(gender, race), FUN = kurtosis))
##   Group.1      Group.2     read    write     math  science    socst
## 1  female african-amer 5.293553 2.441087 4.698841 2.597492 2.554017
## 2    male african-amer 2.571704 1.213593 1.944268 2.552533 2.315460
## 3  female        asian 1.788177 2.911449 1.718401 1.825103 2.708239
## 4    male        asian 1.500000 1.500000 1.500000 1.500000 1.500000
## 5  female     hispanic 3.454724 1.920618 2.362541 2.095000 1.880657
## 6    male     hispanic 2.303890 3.191498 1.951063 2.659911 1.923078
## 7  female        white 2.254607 3.211956 2.336165 2.573160 2.609000
## 8    male        white 2.193766 2.045456 2.284359 2.425587 2.560890
my_summary <- function(x) {
 require(moments)
 funs <- c(mean, sd, skewness, kurtosis)
 sapply(funs, function(f) f(x, na.rm = TRUE))
}
sapply(hsb[, c(7:11)], my_summary)
##            read      write       math    science      socst
## [1,] 52.2300000 52.7750000 52.6450000 51.8500000 52.4050000
## [2,] 10.2529368  9.4785860  9.3684478  9.9008908 10.7357935
## [3,]  0.1948373 -0.4784158  0.2844115 -0.1872277 -0.3786624
## [4,]  2.3630520  2.2385271  2.3373193  2.4283076  2.4585395
with(hsb, aggregate(hsb[, 7:11], by = list(gender, race), FUN = my_summary))
##   Group.1      Group.2     read.1     read.2     read.3     read.4    write.1
## 1  female african-amer 46.7692308  7.2933057  1.0908453  5.2935531 48.8461538
## 2    male african-amer 46.8571429  7.3581830 -0.5014614  2.5717042 47.0000000
## 3  female        asian 51.7500000  9.1456469 -0.0720213  1.7881765 58.8750000
## 4    male        asian 52.3333333  0.5773503  0.7071068  1.5000000 55.6666667
## 5  female     hispanic 45.9090909 12.2429943  0.8336115  3.4547239 48.9090909
## 6    male     hispanic 47.3076923  8.6639542  0.3505098  2.3038901 44.3846154
## 7  female        white 53.4025974  9.7969648  0.2652688  2.2546065 56.4935065
## 8    male        white 54.5147059 10.8373217 -0.1477733  2.1937664 51.2941176
##      write.2    write.3    write.4      math.1      math.2      math.3
## 1  9.5467809  0.2163986  2.4410868 47.53846154  7.37806868  1.48488184
## 2  9.5043850  0.2805474  1.2135932 45.28571429  4.53557368  0.21617314
## 3  7.5297031 -0.8936840  2.9114493 56.75000000 11.10662608 -0.18751759
## 4 10.1159939 -0.6993411  1.5000000 58.66666667  8.73689495 -0.45563859
## 5  6.7446949  0.4399599  1.9206184 45.27272727  6.84238130 -0.07735766
## 6  9.1153576  0.6740362  3.1914975 49.23076923  6.83317698  0.38302113
## 7  7.2613312 -0.8495136  3.2119560 53.77922078  8.80732855  0.05270082
## 8 10.3174375 -0.3818725  2.0454564 54.19117647 10.05693843  0.14096486
##        math.4   science.1   science.2   science.3   science.4     socst.1
## 1  4.69884144 40.69230769  9.52527003  0.73940428  2.59749181 49.69230769
## 2  1.94426762 46.71428571  8.57737889 -0.98118254  2.55253276 49.00000000
## 3  1.71840106 50.87500000 10.92098243 -0.15405549  1.82510261 52.25000000
## 4  1.50000000 53.00000000  5.29150262 -0.59517006  1.50000000 47.66666667
## 5  2.36254116 45.18181818  5.49214315  0.56561271  2.09499993 50.27272727
## 6  1.95106288 45.53846154 10.21123062  0.10751219  2.65991060 45.69230769
## 7  2.33616461 53.15584416  7.69152804  0.01337789  2.57316021 53.90909091
## 8  2.28435866 55.38235294 10.39234709 -0.50797997  2.42558706 53.42647059
##       socst.2     socst.3     socst.4
## 1 11.53534146 -0.30003839  2.55401720
## 2 10.31180553 -0.64522406  2.31545975
## 3 10.60660172  0.13198759  2.70823885
## 4  7.63762616  0.38180177  1.50000000
## 5  9.10044954  0.43962390  1.88065695
## 6  9.19587421  0.01372901  1.92307798
## 7 10.13615444 -0.49165481  2.60899977
## 8 11.60328849 -0.58469114  2.56089041