####一、以下為一連鎖商店的業績  ####
# 分店:A, B, C, D, E, F, G, H
# 業績:20, 35, 55, 58, 63, 47, 70, 88
#1、請將這8家分店的業績合併為一個data frame(5%)
#2、請畫出這8家分店的業績的長條圖。(5%)
branch <- c("A", "B", "C", "D", "E", "F", "G", "H")
sales <- c(20, 35, 55, 58, 63, 47, 70, 88)
df <- data.frame(branch, sales)
df
##   branch sales
## 1      A    20
## 2      B    35
## 3      C    55
## 4      D    58
## 5      E    63
## 6      F    47
## 7      G    70
## 8      H    88
barplot(df$sales, 
        names.arg = df$branch,
        col = c(1:8))

####二、請輸入quakes <- quakes  ####
#這是R內建的一個資料集,記錄了芮氏地震規模大於4.0的地震資料。
#在quakes資料框架中,depth指的是震源深度(單位:公里)。
#請計算depth的最大值、最小值、中位數、平均數、標準差、標準誤
#請畫出depth的直方圖與盒鬚圖
#(加分題10%)請製作一個資料框架(data frame),命名depth_df,包括depth的分組次數計算、百分比、累計百分比分配表(#設組間距為100)
quakes <- quakes
summary(quakes$depth)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    40.0    99.0   247.0   311.4   543.0   680.0
(sd <- sd(quakes$depth))
## [1] 215.5355
(n <- length(quakes$depth))
## [1] 1000
(sd_error <- sd/sqrt(n))
## [1] 6.815831
#請畫出depth的直方圖與盒鬚圖
hist(quakes$depth)

boxplot(quakes$depth)

#加分題
#library(套件名稱)是呼叫已安裝的套件的語法
library(plyr) 
##用plyr這個package裡面的round_any這個函數,設分組的間距為100,算次數分配
#將分組結果,用table函數計算各分組的次數,然後存成一個物件
count<-table(round_any(quakes$depth,100,floor))
count
## 
##   0 100 200 300 400 500 600 
## 251 166 130  56  69 232  96
class(count)
## [1] "table"
#為了等會要將count合併為data frame,所以要先轉換為數值向量
count<-as.numeric(count)#轉為數值向量
#用prop.table( )計算各組次數所佔百分比
pcount<-prop.table(count)*100
#用cumsum( )計算各組百分比的累積百分比
cumsump<-cumsum(pcount)
#為各分組命名,用paste( )函數
name<-paste(seq(0,600,by=100),"-",seq(100,700,by=100),sep="")#為各分組命名
#合併向量為data frame
depth_df<-data.frame("地震次數"=count,"百分比"=pcount,"累積百分比"=cumsump,row.names=name)
depth_df <- round(depth_df,2)
depth_df
##         地震次數 百分比 累積百分比
## 0-100        251   25.1       25.1
## 100-200      166   16.6       41.7
## 200-300      130   13.0       54.7
## 300-400       56    5.6       60.3
## 400-500       69    6.9       67.2
## 500-600      232   23.2       90.4
## 600-700       96    9.6      100.0
####三、某次英文檢定,有1000人報考,總分200分,平均130分,標準差15分   ####
#1、Allen的分數為152分,換算為標準得分(standard score, z分數)為多少?

Allen <- 152
z <- (Allen-130)/15
z
## [1] 1.466667
#2、請問分數介於100分至140分的人佔全體考生的比例為?

x130 <- pnorm(140,mean=130,sd=15)
x100 <- pnorm(100,mean=130,sd=15) 
x130-x100
## [1] 0.7247573
pnorm(140,mean=130,sd=15)-pnorm(100,mean=130,sd=15) 
## [1] 0.7247573
#3、依據往例,分數前20%的考生可列入行政獎勵,請問獎勵分數的門檻為?
x0.8 <- qnorm(0.8,mean=130,sd=15) 
x0.8
## [1] 142.6243
####四、為瞭解民眾對施政的滿意度,電話抽樣1068份有效樣本,其中有710人回答有信心####
#試問試問在90%的信心水準下,民眾對施政的真實滿意度的信賴區間?

#贊成比例的90%的信賴區間
n<-1068
x<-710
p<-x/n
q<-qnorm(0.95)#當平均數數為0,標準差為1的快速算法(標準常態分配)
LCI<-p-q*sqrt(p*(1-p)/n);LCI
## [1] 0.6410343
UCI<-p+q*sqrt(p*(1-p)/n);UCI
## [1] 0.6885537
####五、讀入tcs2019傳播調查資料庫 第二期第三次__問卷結果  ####
load(file = "tcs2019.RData")
#合併下列二欄位:
# j1b.1 J1b.在你有玩電玩遊戲的那一天,你一整天大概玩多久?(時)
# j1b.2 J1b.在你有玩電玩遊戲的那一天,你一整天大概玩多久?(分)
#試問在95%的信心水準下,推估母體在[在你有玩電玩遊戲的那一天,你一整天大概玩多久?(單位:分鐘)] 的信賴區間?
#合併欄位
time <- tcs2019$j1b.1*60+tcs2019$j1b.2
summary(time)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##     0.0    60.0    90.0   129.6   180.0   960.0    1411
(n <- 2000-1411)#計算樣本數
## [1] 589
(mean <- mean(time, na.rm = TRUE))#計算平均數
## [1] 129.6214
(sd <- sd(time, na.rm = TRUE))#計算標準差
## [1] 130.8021
(sd_error <- (sd/sqrt(n)))#計算標準誤
## [1] 5.389608
(z0.95 <- qnorm(0.975, mean=0, sd=1))#計算95%信心水準的z值
## [1] 1.959964
(error_of_estimate <- z0.95*(sd/sqrt(n)))#計算估計誤差
## [1] 10.56344
(LCI <- mean-z0.95*(sd/sqrt(n)))#計算區間估計下限
## [1] 119.058
(UCI <- mean+z0.95*(sd/sqrt(n)))#計算區間估計上限
## [1] 140.1848