深入探索R tibble包

tibble包其實就是將原本dpylr裡面tbl_df S3 class提取出來完善,而讓dpylr包更專注在data.fram資料的挪移操作。而tbl_df class 以S3的形式把data.frame包起來,以提供更好的展示能力和資料操作的方便性。
我們可以由三個方面來理解tibble包:
  1. tibble中有什麼function可以操作、tbl_df中有哪些method。
  2. 如何創建一個tibble data structure或是從傳統data.frame轉換
  3. 其操作上跟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的方式來創建,可以格外的直覺。
screenshot.png

screenshot.png

 

轉換

基本上,就很像使用as.data.frame一樣,as_data_frame為as_tibble的別稱(alias),所以基本上是相同的。

screenshot.png

跟data.frame最大的差別

在操作tbl_df格式的資料和操作傳統data.frame最大的差別在於subsetting和printing上。tbl_df的邏輯其實就是要讓資料呈現簡單,另外,subset造成的資料格式轉化能消失,讓人盡量使用dplyr裡頭的方式。

tbl_df的subsetting還是個tbl_df,這點跟純data.frame不同,要小心。
screenshot.png

 

tbl_df的printing預設只呈現10行,但可以使用options來調整。
screenshot.png

 

 

閱讀參考 link

張丹 R语言数据科学新类型tibble
Hadley Wickham R for data science tibble chapter

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s