tibble包其實就是將原本dpylr裡面tbl_df S3 class提取出來完善,而讓dpylr包更專注在data.fram資料的挪移操作。而tbl_df class 以S3的形式把data.frame包起來,以提供更好的展示能力和資料操作的方便性。
我們可以由三個方面來理解tibble包:
- tibble中有什麼function可以操作、tbl_df中有哪些method。
- 如何創建一個tibble data structure或是從傳統data.frame轉換
- 其操作上跟data.frame有什麼差別
tibble包中有什麼?
在tbl_df class其主要有四個base method,其實就是基於data.frame的基本操作,如[,[[,$等subsetting的操作,還有print的顯示改善。
而tibble包中提供很多function來操作變化tbl_df的資料結構。
- add_row:直接新增資料到原有的數據中
- all_equal:辨別兩個tbl_df是否相同
- as_tibble:將data.frame轉換為tbl_df/tibble
- enflame: 將atomic轉換成tbl_df
- frame_data:使用row-wise的方式建立tbl_df,適合資料量小的操作
- glimpse: 展示資料中的變數
- has_name:展示資料中的名稱
- is.tibble: 判定資料是否為tbl_df格式
- tibble: 建立tbf_df資料格式
如何使用tibble
創建
創建的方式,跟使用data.frame類似,在資料量小時,也可以使用frame_data的方式來創建,可以格外的直覺。
轉換
基本上,就很像使用as.data.frame一樣,as_data_frame為as_tibble的別稱(alias),所以基本上是相同的。
跟data.frame最大的差別
在操作tbl_df格式的資料和操作傳統data.frame最大的差別在於subsetting和printing上。tbl_df的邏輯其實就是要讓資料呈現簡單,另外,subset造成的資料格式轉化能消失,讓人盡量使用dplyr裡頭的方式。
tbl_df的subsetting還是個tbl_df,這點跟純data.frame不同,要小心。
tbl_df的printing預設只呈現10行,但可以使用options來調整。
閱讀參考 link
張丹 R语言数据科学新类型tibble
Hadley Wickham R for data science tibble chapter