Tidyverse:從這裡開始學習 R 語言

Yet Another Great R Programming for Beginners Tutorial from University of Edinburgh

Yao-Jen Kuo
數聚點文摘

--

摘要

由愛丁堡大學(University of Ediburgh)醫學院 Greg Martin 教授所演繹的高品質 R Programming for Beginner 教學影片;在短短 15 分鐘裡除了介紹如何與 R 互動,還扼要地展示如何使用 dplyr 整理資料、使用 ggplot2 作圖、執行 T 檢定以及建立線性回歸模型。從教學內容不難察覺 Greg Martin 也在嘗試 David Robinson 所說的 tidyverse first 入門方式。

R programming for beginners — statistic with R (t-test and linear regression) and dplyr and ggplot

R 的核心概念:對物件應用函數

The way R works is pretty straightforward, you apply functions to objects.

Greg Martin

Greg 簡單扼要一句話就帶出 R 的精髓,這段話其實並不是新觀念,R 語言的核心成員 John Chambers 就有說過一個暸解 R 概念的好標語:

Everything that happens is a function call.

John Chambers

確實如此,教學一開始安裝套件、載入套件、顯示與摘要 gapminder 資料,四行程式就用了四個函數 install.packages()library()data()summary()

除了對整個資料做摘要,也可以對資料中的單一變數(欄位)計算平均數,藉此就能暸解 $<- 的作用:

簡單繪圖函數

R 語言的 base plotting system 就可以製作基本統計摘要圖形,如果懶得每一次都輸入資料名稱,先呼叫 atttach() 函數即可。

hist
boxplot
plot

dplyr 登場

該如何從資料中篩選出兩個國家的資料、依國家分組並計算平均預期壽命?看似複雜的三件事情運算,透過 dplyr 套件與 %>% 運算子可以在一個敘述中完成:

這個平均數差距是真實存在?或只是因為取樣所造成的偏誤?換 T 檢定粉墨登場!

T 檢定登場

T 檢定所要檢視的虛無假設為平均數差距只是取樣偏誤,並不是真實存在;使用 t.test() 函數能夠計算出虛無假設為真(該平均數差距並不存在)的機率,即為 p 值。如果這個值愈小,表示虛無假設為真的機率愈低,那麼我們就比較有信心說平均數差距是真實存在,通常以 5% 作為門檻值,因為常採用 95% 作為信賴區間。

p 值非常低,意指虛無假設為真的機率很低,換句話說,我們可以比較有信心婉拒虛無假設,而聲稱台灣與南非在資料中所呈現出的預期壽命的差距是真實存在的。

ggplot2 登場

接著是讓 ggplot2(Grammar of Graphics,視覺化的文法)展現它的能力,可以輕鬆將基本圖形點綴成吸睛的美麗圖表。

首先篩選出人均 GDP 小於 50,000 美元的國家資料,畫出樸素的散佈圖。

只要加上幾個簡單函數、參數設定,就可以將這個散佈圖從樸素改變為炫麗。首先是將不同洲(continent)的資料點著上不同顏色 col = continent並加上一些透明度 alpha = 0.3

接著是將人口數用資料點大小表示 size = pop、加入平滑趨勢線 geom_smooth()

或者讓趨勢線為線性 geom_smooth(method = 'lm')

把五個洲的資料都擺放在同一個圖上有點太雜亂,可以使用 facet_wrap(~continent) 依洲別區分五個小圖,如此就不需要使用顏色區隔資料點囉。

lm() 函數登場

既然在 geom_smooth(method = 'lm') 是使用線性回歸模型,自然要稍微提一下內建的 lm() 函數,藉由該函數我們可以快速得知模型中變數的係數以及截距項,搭配 summary() 函數就能暸解該變數對於模型的影響是否顯著;在這裡虛無假設是該變數對模型沒有影響,而 p 值為虛無假設為真的機率,如果 p 愈小,我們也才愈有信心婉拒虛無假設,闡述該變數對模型的影響是真實存在的。

最後,別忘了使用 detach() 函數釋放 gapminder 資料喔!完整重現教學影片的程式碼在此:

如果您喜歡這篇文章,有很多方式可以表達!- 請多按幾下「拍手」圖像
- 追蹤作者
- 追蹤專欄
- 分享連結到社群網站
- 轉發給朋友
- 成為我們的贊助者
- 訂閱 DataInPoint

--

--