筆者之前有寫一篇關於Tidyverse的介紹,” R 資料的魔法師-Tidyverse (1)”,已經介紹了Tidyverse裡常用的package,包含readr、tidyr、Tibble、dplyr的使用,接下來筆者會針對剩下常用的package作介紹(如下圖所示)。
取代迴圈的加速器 purr:
在做資料處理的時候,有時候會寫一些迴圈來做重複的資料處理,但對於一些不是很熟悉迴圈的使用者來說,這可能會變得很困擾,而且也容易出現寫錯的機會,但如果不透過迴圈的方式處理,可能同樣的資料處理語法會需要重複寫很多次,雖然也不是不可以,但可能會大幅增加資料處理的時間以及程式的簡潔性。
Purrr package 提供了很多map系列的函数,功能類似R原生的apply家族函数(https://kemushi54.github.io/R-basic/apply_family.html),都是針對向量化的物件(vector、list)的每一个元素做處裡,常用的map()函數如下,.x代表要被處理的list or vector,.f代表要使用的函數or 公式,經過處理後會輸出list、data frame、vector。
- map(.x, .f) is the main mapping function and returns a list
- map_df(.x, .f) returns a data frame
- map_dbl(.x, .f) returns a numeric (double) vector
- map_chr(.x, .f) returns a character vector
- map_lgl(.x, .f) returns a logical vector
例子:
# 產生一個簡單函數,把數字加20
.f <- function(.x) {
return(.x + 20)
}
# map
library(tidyverse)
map(.x = c(1, 4, 7), .f)
官網也有提供purr常用函數的說明及圖像化的說明,讓使用者可以再使用的時候做查詢,可以快速找到需要的函數做使用,讀者可以詳見以下的圖形。
資料視覺化的強大工具 ggplot2:R語言裡面最為熱門的畫圖套件之一,ggplot2可以分為幾個部分:
- 資料(data):指定畫圖資料的來源(data frame)
- 圖形美化(aesthetic):指定畫圖資料與圖形之間的對應關係,例如哪一個變數要當作x軸變數,而哪一個要當作y軸變數,還有資料繪圖時的樣子等。
- 幾何圖案(geometry):要用什麼幾何圖形繪製資料,例如點、線條、多邊形等。
- 畫布(facet):指定如何將資料分散在多張子圖形中繪製,以利互相比較。
- 統計轉換(statistical transformation):指定如何以將資料轉換為各種統計量,例如將連續型資料轉為離散型的類別。
- 座標系統(coordinate system):指定繪圖時所使用的座標系統,除了常見的笛卡兒直角座標系統,也可以使用其他的座標系統。
- 主題(theme):控制資料以外的繪圖組件,例如座標軸、說明文字等。
例子:
ggplot(df2, aes(x=dose, y=len, group=supp)) +geom_line(aes(linetype=supp)) +geom_point()+scale_linetype_manual(values=c("twodash", "dotted"))
從上面的介紹可以知道ggplot2能針對畫圖的細節調整很多內容,每一次的調整都是一層疊加一層,透過類似疊圖的方式處理,官網也有提供ggplot2常用函數的說明及圖像化的說明,讓使用者可以再使用的時候做查詢,可以快速找到需要的函數做使用,讀者可以詳見以下的圖形。
參考資料
- https://r4ds.had.co.nz/introduction.html
- https://www.tidyverse.org/