##R語言資料分析期中考:
##輸入學號: 1130730212  和名字:余勤彥
##壹、自建資料與圖表(請見社團範例)
#(1-1)建立一個data frame,包括brand品牌與market_share市站率
brand <-c("Samsung","Apple","Oppo")
market_share <-c(31.7,22.8,9.3)
data<-data.frame(brand,market_share)
#(1-2)畫長條圖
#加上圖例與上色
brand <-c("Samsung","Apple","Oppo")
market_share <-c(31.7,22.8,9.3)
data<-data.frame(brand,market_share)
barplot(sort(market_share,decreasing = TRUE),
        names.arg =c("Sansung","Apple","Oppo"),
        main = "market_share",
        sub="by eyon",
        xlab = "brand",
        ylab = "market_share",
        col =c(16:24))

#貳、比較gender 性別與lunch 營養午餐類型
#讀入外部資料
sp <- read.csv(file = "StudentsPerformance.csv", stringsAsFactors = TRUE)
summary(sp)
##     gender    race.ethnicity     parental.level.of.education          lunch    
##  female:518   group A: 89    associate's degree:222          free/reduced:355  
##  male  :482   group B:190    bachelor's degree :118          standard    :645  
##               group C:319    high school       :196                            
##               group D:262    master's degree   : 59                            
##               group E:140    some college      :226                            
##                              some high school  :179                            
##  test.preparation.course   math.score     reading.score    writing.score   
##  completed:358           Min.   :  0.00   Min.   : 17.00   Min.   : 10.00  
##  none     :642           1st Qu.: 57.00   1st Qu.: 59.00   1st Qu.: 57.75  
##                          Median : 66.00   Median : 70.00   Median : 69.00  
##                          Mean   : 66.09   Mean   : 69.17   Mean   : 68.05  
##                          3rd Qu.: 77.00   3rd Qu.: 79.00   3rd Qu.: 79.00  
##                          Max.   :100.00   Max.   :100.00   Max.   :100.00
#欄位名稱------------------------------------------
# gender 性別
# race.ethnicity 種族分群
# parental.level.of.education  父母教育程度
# lunch 營養午餐類型(free/reduced免費或減免餐費,standard為一般類別)
# test.preparation.course
# math.score 數學成績
# reading.score 閱讀成績
# writing.score 寫作成績
#(2-1)計算不同gender 性別與lunch 營養午餐人數的比例(交叉分析表)
t <- table(sp$lunch,sp$gender)
t
##               
##                female male
##   free/reduced    189  166
##   standard        329  316
p.t <- prop.table(t)
p.t
##               
##                female  male
##   free/reduced  0.189 0.166
##   standard      0.329 0.316
p.t <- p.t*100
p.t
##               
##                female male
##   free/reduced   18.9 16.6
##   standard       32.9 31.6
#(2-2)呈現gender 性別與lunch 營養午餐人數的圖表
rownames(p.t)
## [1] "free/reduced" "standard"
label <- rownames(p.t)
label
## [1] "free/reduced" "standard"
barplot(p.t, 
        main = "Gender/Lunch",
        beside =TRUE , 
        legend.text =label, 
        col =c(6,4) )

#參、math.score 數學成績的直方圖與盒狀圖
label <- rownames("math.score")
hist(sp$math.score, 
     col=c(46:88),
     main = "math.score",
     sub = "eyon")

#肆、math.score數學成績的最大值、最小值、平均數、中位數、標準差
max(sp$math.score)
## [1] 100
min(sp$math.score)
## [1] 0
mean(sp$math.score)
## [1] 66.089
median(sp$math.score)
## [1] 66
sd(sp$math.score)
## [1] 15.16308
#五、呈現以下兩組關係的散佈圖
#(1)math.score 數學成績與與writing.score 寫作成績
par(mfrow = c(1,2))
plot(sp$math.score,sp$writing.score)
#(2)reading.score 閱讀成績與writing.score 寫作成績
plot(sp$reading.score,sp$writing.score)

#六、計算以下兩組關係的相關係數
#(1)reading.score 閱讀成績與math.score 數學成績
par(mfrow=c(1,2))
cor(sp$reading.score,sp$math.score)
## [1] 0.8175797
#(2)writing.score 寫作成績與math.score 數學成績
cor(sp$writing.score,sp$math.score)
## [1] 0.802642
#七、計算不同gender 性別的math.score 數學成績並畫長條圖
t <- table(sp$gender, sp$math.score)
t
##         
##           0  8 18 19 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42
##   female  1  1  1  1  1  1  1  1  1  0  3  0  3  1  2  4  1  3  3  2  5  4  5
##   male    0  0  0  0  0  0  0  0  1  1  0  2  0  0  0  1  1  1  0  2  5  2  1
##         
##          43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
##   female  4  6  5  5  6  7  8 11  6 13 11 11  8  7 10 13 21  8 11 16 13 12 28
##   male    1  3  4  6  5  4  9  4  5  5 13  7 10  2  8 12 11  8 16 19 13  8  8
##         
##          66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
##   female 12 16 11 16  8 13  7 13 15 10  8 16  6  8  6  8  9  4  2  8  2  5  6
##   male   12 10 15 16 10 13 11 14 10 11 13  8  8 14 11 14  9  4  9  6  6 11  9
##         
##          89 90 91 92 93 94 95 96 97 98 99 100
##   female  1  2  2  4  2  2  1  2  2  1  2   3
##   male    5  6  7  2  2  5  1  1  4  2  1   4
x<-tapply(sp$math.score,sp$gender,mean)
x
##   female     male 
## 63.63320 68.72822
barplot(x,main = "gender", sub = "by eyon",xlab="gender",ylab="grade",
        beside =TRUE , 
        col =c(9:1))