” 原來,R 也認識中文及希臘文。 坦白說,你不說這是R, 我還以為, 這只是中文夾了αβγδ來寫的數學文章。 要寫數學,若不用αβγδ也實在不順。 總而言之, 這是一支如假包換的R程式習作。

呂仁園 2022/06/22 ”

#—————– # 先做一個小學數學 #—————–

# 最初,我們看到了 π

π= pi  

cat('圓周率 π = ', π, '\n')
圓周率 π =  3.141593 
計算圓面積= function(r= 1){
  "
  這個函數不用解釋,
  看名稱就知其用途。
  很酷吧。
  "
  
  # 啊不然看下面這個公式,還有誰不懂的!
  
  面積= π * r^2 
  
  return(面積) }

半徑= 10

面積= 計算圓面積(半徑)

cat('練習小學數學,計算圓面積= ', 面積, '\n')
練習小學數學,計算圓面積=  314.1593 

如果用 Python 來寫會怎樣?

reticulate::repl_python()
import numpy as np

π= np.pi #3.14 #pi  

print(f'圓周率 π = { π }')
圓周率 π = 3.141592653589793
def 計算圓面積(r):
  '''
  這個函數不用解釋,
  看名稱就知其用途。
  很酷吧。
  '''
  
  # 啊不然看下面這個公式,還有誰不懂的!
  
  面積= π * r**2 
  
  return(面積) 

半徑= 10

面積= 計算圓面積(半徑)

print(f'練習小學數學,計算圓面積= { 面積 }')
練習小學數學,計算圓面積= 314.1592653589793

#————— # 再回到 R #—————

##————— ## 試試看畫圖功能 ##—————

quit
library(ggplot2)

X= 常態分布隨機數= rnorm(100)
μ= 100
σ= 10
X= X*σ + μ

qplot(X, geom= 
           c('histogram',
             'boxplot'))
`stat_bin()` using `bins = 30`. Pick better value with
`binwidth`.

#——————- # 包裝幾個方便的函數 #——————-

Φ= 左尾面積= function(z){
  p= pnorm(z)
  return (p) }

Q= 右尾面積= function(z){
  q= 1-pnorm(z)
  return (q) }

Φt= t左尾面積= function(t, df=100){
  p= pt(t, df)
  return (p) }

Qt= t右尾面積= function(t, df=100){
  q= 1-pt(t, df)
  return (q) }

#—————————– # 開始假設檢定,先把假設寫好。 #—————————–

H0= 虛無假設= "μ =  μ0"  # μ在中間

H1= 對立假設= "μ  <  μ0" # μ在左邊
H2= 對立假設= "μ0 <  μ"  # μ在右邊
H3= 對立假設= "μ !=  μ0" # μ在雙邊

μ0=   95

#———————– # 然後做基本統計量的計算 #———————–

xBar= mean(X)
s2=   var(X)
s=    sd(X)
n=    length(X)

#——————- # 再來,先做 z 檢定 #——————-

α=  .05

z統計量= (xBar - μ0)/(σ/sqrt(n))

左p值= 左尾面積(z統計量)
右p值= 右尾面積(z統計量)
雙p值= 2*右尾面積(abs(z統計量))

結果報告1= data.frame(
  z統計量, 
  左p值, 
  右p值,
  雙p值)

μ在左邊= (左p值<α)
μ在右邊= (右p值<α)
μ在雙邊= (雙p值<α)

結果報告2= data.frame(
  μ, μ0, 
  μ在左邊, 
  μ在右邊, 
  μ在雙邊)

print(結果報告1)
print(結果報告2)

#——————- # 之後,再做 T 檢定 #——————-

t統計量= (xBar - μ0)/(s/sqrt(n))

t左p值= t左尾面積(t統計量, df=n-1)
t右p值= t右尾面積(t統計量, df=n-1)
t雙p值= 2*t右尾面積(abs(t統計量), df=n-1)

μ在左邊= (t左p值<α)
μ在右邊= (t右p值<α)
μ在雙邊= (t雙p值<α)

結果報告3= data.frame(
  t統計量, 
  t左p值, 
  t右p值,
  t雙p值)

結果報告4= data.frame(
  μ, μ0, 
  μ在左邊, 
  μ在右邊, 
  μ在雙邊)

print(結果報告3)
print(結果報告4)

#————————– # 比比看,R 官方做的 T 檢定 #————————–

結果報告5= t.test(X, mu= μ0, alternative = 'two.sided')
結果報告6= t.test(X, mu= μ0, alternative = 'less')
結果報告7= t.test(X, mu= μ0, alternative = 'greater')

print(結果報告5)

    One Sample t-test

data:  X
t = 5.3664, df = 99, p-value = 5.295e-07
alternative hypothesis: true mean is not equal to 95
95 percent confidence interval:
  98.59334 102.80953
sample estimates:
mean of x 
 100.7014 
print(結果報告6)

    One Sample t-test

data:  X
t = 5.3664, df = 99, p-value = 1
alternative hypothesis: true mean is less than 95
95 percent confidence interval:
     -Inf 102.4655
sample estimates:
mean of x 
 100.7014 
print(結果報告7)

    One Sample t-test

data:  X
t = 5.3664, df = 99, p-value = 2.647e-07
alternative hypothesis: true mean is greater than 95
95 percent confidence interval:
 98.93738      Inf
sample estimates:
mean of x 
 100.7014 
LS0tDQp0aXRsZTogIuWOn+S+hu+8jFIg5Lmf6KqN6K2Y5Lit5paH5Y+K5biM6IeY5paH44CCIg0KYXV0aG9yOiAi5ZGC5LuB5ZySIg0KZGF0ZTogIjIwMjIvMDYvMjIiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KDQoNCiINCuWOn+S+hu+8jFIg5Lmf6KqN6K2Y5Lit5paH5Y+K5biM6IeY5paH44CCDQrlnabnmb3oqqrvvIzkvaDkuI3oqqrpgJnmmK9S77yMDQrmiJHpgoTku6XngrrvvIwNCumAmeWPquaYr+S4reaWh+WkvuS6hs6xzrLOs8605L6G5a+r55qE5pW45a245paH56ug44CCDQropoHlr6vmlbjlrbjvvIzoi6XkuI3nlKjOsc6yzrPOtOS5n+WvpuWcqOS4jemghuOAgg0K57i96ICM6KiA5LmL77yMDQrpgJnmmK/kuIDmlK/lpoLlgYfljIXmj5vnmoRS56iL5byP57+S5L2c44CCDQoNCuWRguS7geWckg0KMjAyMi8wNi8yMg0KIg0KDQojLS0tLS0tLS0tLS0tLS0tLS0NCiMg5YWI5YGa5LiA5YCL5bCP5a245pW45a24DQojLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQoNCg0KYGBge3J9DQojIOacgOWIne+8jOaIkeWAkeeci+WIsOS6hiDPgA0KDQrPgD0gcGkgIA0KDQpjYXQoJ+Wck+WRqOeOhyDPgCA9ICcsIM+ALCAnXG4nKQ0KDQroqIjnrpflnJPpnaLnqY09IGZ1bmN0aW9uKHI9IDEpew0KICAiDQogIOmAmeWAi+WHveaVuOS4jeeUqOino+mHi++8jA0KICDnnIvlkI3nqLHlsLHnn6XlhbbnlKjpgJTjgIINCiAg5b6I6YW35ZCn44CCDQogICINCiAgDQogICMg5ZWK5LiN54S255yL5LiL6Z2i6YCZ5YCL5YWs5byP77yM6YKE5pyJ6Kqw5LiN5oeC55qE77yBDQogIA0KICDpnaLnqY09IM+AICogcl4yIA0KICANCiAgcmV0dXJuKOmdouepjSkgfQ0KDQrljYrlvpE9IDEwDQoNCumdouepjT0g6KiI566X5ZyT6Z2i56mNKOWNiuW+kSkNCg0KY2F0KCfnt7Tnv5LlsI/lrbjmlbjlrbjvvIzoqIjnrpflnJPpnaLnqY09ICcsIOmdouepjSwgJ1xuJykNCmBgYA0KIyMg5aaC5p6c55SoIFB5dGhvbiDkvoblr6vmnIPmgI7mqKPvvJ8NCg0KYGBge3B5dGhvbn0NCmltcG9ydCBudW1weSBhcyBucA0KDQrPgD0gbnAucGkgIzMuMTQgI3BpICANCg0KcHJpbnQoZiflnJPlkajnjocgz4AgPSB7IM+AIH0nKQ0KDQpkZWYg6KiI566X5ZyT6Z2i56mNKHIpOg0KICAnJycNCiAg6YCZ5YCL5Ye95pW45LiN55So6Kej6YeL77yMDQogIOeci+WQjeeoseWwseefpeWFtueUqOmAlOOAgg0KICDlvojphbflkKfjgIINCiAgJycnDQogIA0KICAjIOWViuS4jeeEtueci+S4i+mdoumAmeWAi+WFrOW8j++8jOmChOacieiqsOS4jeaHgueahO+8gQ0KICANCiAg6Z2i56mNPSDPgCAqIHIqKjIgDQogIA0KICByZXR1cm4o6Z2i56mNKSANCg0K5Y2K5b6RPSAxMA0KDQrpnaLnqY09IOioiOeul+Wck+mdouepjSjljYrlvpEpDQoNCnByaW50KGYn57e057+S5bCP5a245pW45a2477yM6KiI566X5ZyT6Z2i56mNPSB7IOmdouepjSB9JykNCg0KYGBgDQoNCiMtLS0tLS0tLS0tLS0tLS0NCiMg5YaN5Zue5YiwIFINCiMtLS0tLS0tLS0tLS0tLS0NCg0KIyMtLS0tLS0tLS0tLS0tLS0NCiMjIOippuippueci+eVq+WcluWKn+iDvQ0KIyMtLS0tLS0tLS0tLS0tLS0NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQoNClg9IOW4uOaFi+WIhuW4g+maqOapn+aVuD0gcm5vcm0oMTAwKQ0Kzrw9IDEwMA0Kz4M9IDEwDQpYPSBYKs+DICsgzrwNCg0KcXBsb3QoWCwgZ2VvbT0gDQogICAgICAgICAgIGMoJ2hpc3RvZ3JhbScsDQogICAgICAgICAgICAgJ2JveHBsb3QnKSkNCmBgYA0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tDQojIOWMheijneW5vuWAi+aWueS+v+eahOWHveaVuA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KYGBge3J9DQrOpj0g5bem5bC+6Z2i56mNPSBmdW5jdGlvbih6KXsNCiAgcD0gcG5vcm0oeikNCiAgcmV0dXJuIChwKSB9DQoNClE9IOWPs+WwvumdouepjT0gZnVuY3Rpb24oeil7DQogIHE9IDEtcG5vcm0oeikNCiAgcmV0dXJuIChxKSB9DQoNCs6mdD0gdOW3puWwvumdouepjT0gZnVuY3Rpb24odCwgZGY9MTAwKXsNCiAgcD0gcHQodCwgZGYpDQogIHJldHVybiAocCkgfQ0KDQpRdD0gdOWPs+WwvumdouepjT0gZnVuY3Rpb24odCwgZGY9MTAwKXsNCiAgcT0gMS1wdCh0LCBkZikNCiAgcmV0dXJuIChxKSB9DQpgYGANCg0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyDplovlp4vlgYfoqK3mqqLlrprvvIzlhYjmiorlgYfoqK3lr6vlpb3jgIINCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KYGBge3J9DQpIMD0g6Jmb54Sh5YGH6KitPSAizrwgPSAgzrwwIiAgIyDOvOWcqOS4remWkw0KDQpIMT0g5bCN56uL5YGH6KitPSAizrwgIDwgIM68MCIgIyDOvOWcqOW3pumCig0KSDI9IOWwjeeri+WBh+iorT0gIs68MCA8ICDOvCIgICMgzrzlnKjlj7PpgooNCkgzPSDlsI3nq4vlgYfoqK09ICLOvCAhPSAgzrwwIiAjIM685Zyo6ZuZ6YKKDQoNCs68MD0gICA5NQ0KYGBgDQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIOeEtuW+jOWBmuWfuuacrOe1seioiOmHj+eahOioiOeulw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KYGBge3J9DQp4QmFyPSBtZWFuKFgpDQpzMj0gICB2YXIoWCkNCnM9ICAgIHNkKFgpDQpuPSAgICBsZW5ndGgoWCkNCmBgYA0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tDQojIOWGjeS+hu+8jOWFiOWBmiB6IOaqouWumg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQpgYGB7cn0NCs6xPSAgLjA1DQoNCnrntbHoqIjph489ICh4QmFyIC0gzrwwKS8oz4Mvc3FydChuKSkNCg0K5bemcOWAvD0g5bem5bC+6Z2i56mNKHrntbHoqIjph48pDQrlj7Nw5YC8PSDlj7PlsL7pnaLnqY0oeue1seioiOmHjykNCumbmXDlgLw9IDIq5Y+z5bC+6Z2i56mNKGFicyh657Wx6KiI6YePKSkNCg0K57WQ5p6c5aCx5ZGKMT0gZGF0YS5mcmFtZSgNCiAgeue1seioiOmHjywgDQogIOW3pnDlgLwsIA0KICDlj7Nw5YC8LA0KICDpm5lw5YC8KQ0KDQrOvOWcqOW3pumCij0gKOW3pnDlgLw8zrEpDQrOvOWcqOWPs+mCij0gKOWPs3DlgLw8zrEpDQrOvOWcqOmbmemCij0gKOmbmXDlgLw8zrEpDQoNCue1kOaenOWgseWRijI9IGRhdGEuZnJhbWUoDQogIM68LCDOvDAsIA0KICDOvOWcqOW3pumCiiwgDQogIM685Zyo5Y+z6YKKLCANCiAgzrzlnKjpm5npgoopDQoNCnByaW50KOe1kOaenOWgseWRijEpDQpwcmludCjntZDmnpzloLHlkYoyKQ0KYGBgDQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0NCiMg5LmL5b6M77yM5YaN5YGaIFQg5qqi5a6aDQojLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCmBgYHtyfQ0KdOe1seioiOmHjz0gKHhCYXIgLSDOvDApLyhzL3NxcnQobikpDQoNCnTlt6Zw5YC8PSB05bem5bC+6Z2i56mNKHTntbHoqIjph48sIGRmPW4tMSkNCnTlj7Nw5YC8PSB05Y+z5bC+6Z2i56mNKHTntbHoqIjph48sIGRmPW4tMSkNCnTpm5lw5YC8PSAyKnTlj7PlsL7pnaLnqY0oYWJzKHTntbHoqIjph48pLCBkZj1uLTEpDQoNCs685Zyo5bem6YKKPSAodOW3pnDlgLw8zrEpDQrOvOWcqOWPs+mCij0gKHTlj7Nw5YC8PM6xKQ0KzrzlnKjpm5npgoo9ICh06ZuZcOWAvDzOsSkNCg0K57WQ5p6c5aCx5ZGKMz0gZGF0YS5mcmFtZSgNCiAgdOe1seioiOmHjywgDQogIHTlt6Zw5YC8LCANCiAgdOWPs3DlgLwsDQogIHTpm5lw5YC8KQ0KDQrntZDmnpzloLHlkYo0PSBkYXRhLmZyYW1lKA0KICDOvCwgzrwwLCANCiAgzrzlnKjlt6bpgoosIA0KICDOvOWcqOWPs+mCiiwgDQogIM685Zyo6ZuZ6YKKKQ0KDQpwcmludCjntZDmnpzloLHlkYozKQ0KcHJpbnQo57WQ5p6c5aCx5ZGKNCkNCmBgYA0KDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyDmr5Tmr5TnnIvvvIxSIOWumOaWueWBmueahCBUIOaqouWumg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KYGBge3J9DQrntZDmnpzloLHlkYo1PSB0LnRlc3QoWCwgbXU9IM68MCwgYWx0ZXJuYXRpdmUgPSAndHdvLnNpZGVkJykNCue1kOaenOWgseWRijY9IHQudGVzdChYLCBtdT0gzrwwLCBhbHRlcm5hdGl2ZSA9ICdsZXNzJykNCue1kOaenOWgseWRijc9IHQudGVzdChYLCBtdT0gzrwwLCBhbHRlcm5hdGl2ZSA9ICdncmVhdGVyJykNCg0KcHJpbnQo57WQ5p6c5aCx5ZGKNSkNCnByaW50KOe1kOaenOWgseWRijYpDQpwcmludCjntZDmnpzloLHlkYo3KQ0KDQoNCmBgYA0KDQoNCg0K