一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

R中的數(shù)據(jù)表可視化工具——DT包

 微笑如酒 2018-09-12

小編最近在用業(yè)余時間學(xué)習(xí)R的一個可視化工具Rshiny,在這個過程當(dāng)中,接觸到R中的一個數(shù)據(jù)包叫DT。在自學(xué)查資料時,發(fā)現(xiàn)網(wǎng)上對這個數(shù)據(jù)包的介紹十分有限。所以,小編在這里現(xiàn)學(xué)現(xiàn)賣,寫一篇小文給大家介紹一下這個R包。鑒于小編水平有限,有任何錯誤和紕漏,還歡迎各位大神指正。

那好,我們就開始吧!~

 

有人可能會詫異,一個數(shù)據(jù)包而已嘛,用得著特別介紹嗎?小編最開始也是這么想的……然而當(dāng)我找到官方網(wǎng)頁,打開這個數(shù)據(jù)包的使用方法介紹的時候,確確實實被里面紛繁復(fù)雜的各類參數(shù)給驚到了。一個R包的protocol竟然做出了堪比一個分析方法的protocol的厚重感,這讓我不由得肅然起敬。

扯了這么多,這個DT包到底是干什么用的呢?DT包提供了JavaScript庫DataTables在R中的一個接口,使得R對象(矩陣或者數(shù)據(jù)框)可以在HTML頁面上顯示為表格,并提供了對數(shù)據(jù)的篩選、分頁和排序等功能。

翻譯成人話就是,DT包使得JavaScript中的方法能在R中被應(yīng)用,并將矩陣或者數(shù)據(jù)表在網(wǎng)頁中可視化成表格,還能實現(xiàn)各種功能。小編先用R中自帶的數(shù)據(jù)集iris給大家一個直觀感受:

install.packages('DT')  #安裝DT數(shù)據(jù)包
library(DT)  # 載入數(shù)據(jù)包
datatable(iris)  # DT包中的核心函數(shù)datatable()

注:可視化之前可能還需要加載HTTP和WebSocket服務(wù)程序

install.packages('httpuv')
install.packages('yaml')
library(httpuv)
library(yaml) 
datatable(iris) 


由圖可見,在沒有任何多余設(shè)置的情況下,僅僅使用DT包中的datatable函數(shù),就可以直接可視化表格數(shù)據(jù),并且自動完成對數(shù)據(jù)的分頁顯示,使用戶可以對每一列進行升(降)序排列,控制每頁顯示條目的多少,以及對數(shù)據(jù)進行檢索等一系列功能。

 

DT包中最主要的函數(shù)就是datatable()函數(shù),完整參數(shù)列表如下:

datatable(data, options = list(), class='display', callback = JS('return table;'), rownames, colnames, container, caption = NULL, filter = c('none','bottom', 'top'), escape = TRUE, style = 'default', width = NULL, height = NULL, elementId = NULL, fillContainer = getOption('DT.fillContainer', NULL), autoHideNavigation = getOption('DT.autoHideNavigation',NULL), selection = c('multiple', 'single', 'none'), extensions = list(), plugins = NULL, editable = FALSE)

實話說小編看見這個參數(shù)列表就已經(jīng)先慫了。但是參數(shù)越多就意味著自主權(quán)越多,越能按照自己的心意設(shè)置想展現(xiàn)的樣子,這對于可視化來說是很重要的。

所以在這篇小文里,小編先拋磚引玉,簡要粗淺的講一些我覺得比較好理解的,常用的參數(shù),剩下的參數(shù)設(shè)置,就請感興趣的各位自行研究啦~

 

1、表格編輯:

DT::datatable (head (iris) , editable = TRUE)

將參數(shù)editable更改為TRUE,即可對呈現(xiàn)出來的表格內(nèi)容進行編輯。鼠標(biāo)懸停在數(shù)據(jù)上方雙擊,即可改變表格內(nèi)容。

2、行名顯示:

默認(rèn)顯示行名,通過設(shè)置rownames =FALSE,來控制行名不顯示。另外也可以rownames等于一組向量來為行名重新進行賦值。

3、列名設(shè)置:

默認(rèn)顯示列名,可以通過列名編輯來對一個或多個列名進行更改。

以上圖的iris數(shù)據(jù)集為例:

datatable(head(iris),colnames = c('Here', 'Are','Some', 'New', 'Names'))

將列名修改成了如下圖所示:

也可以根據(jù)列名來指定某一列進行列名改變,例如:

datatable(head(iris), colnames= c('A Better Name' ='Sepal.Width'))

將列名'Sepal.Width'修改為'A Better Name',注意,被修改的原名在賦值號后面

也可以根據(jù)位置對某一列或某幾列進行指定,對其進行列名更改

datatable(head(iris),colnames = c('Another BetterName' = 2, 'Yet Another Name' = 4))

將第二列的列名更改為'Another Better Name',將第四列的列名更改為'Yet Another Name'

4、設(shè)置數(shù)據(jù)表標(biāo)題

datatable( head(iris),caption ='Table 1: This is a simple caption for the table.')

caption參數(shù)設(shè)置數(shù)據(jù)表標(biāo)題

簡單講了以上幾個小參數(shù),接下來我們來看datatable參數(shù)中的大boss——options參數(shù)列表。這個參數(shù)的取值是一系列小參數(shù)的list,個別小參數(shù)里還包含更次一級的參數(shù),讓人眼花繚亂。以下小編挑一些給大家介紹一下:

1)設(shè)置列寬:

默認(rèn)情況下,列寬設(shè)置選項autoWidth為FALSE,代表表格自動分配寬度值,每一列的列寬度值均一。如果要人為修改某一列或者某幾列的寬度值,則需要先將autoWidth設(shè)置從FALSE更改為TRUE,之后用columnDefs參數(shù)設(shè)置特定列和寬度。例如:

datatable(iris, options = list( autoWidth = TRUE, columnDefs = list(list(width = '200px', targets = c(1, 3)))))

以上代碼表示將第一列與第三列的寬度設(shè)置成 ’200px’

效果如下:

原始數(shù)據(jù)表,列寬均一

第一列和第三列的列寬度改變:

2)一些初始化設(shè)置

可以通過option參數(shù)列表進行一系列初始化設(shè)置:

datatable( head ( iris,20), options = list(columnDefs = list ( list(className = 'dt-left', targets = 1)), pageLength = 5, lengthMenu = c(5, 10, 15, 20)))

上述代碼的意思是顯示iris數(shù)據(jù)表的前20行,第一列的對齊方式為左對齊(即:dt-left),每頁顯示長度為5條數(shù)據(jù),每頁顯示條目長度選項列表為(5,10,15,20),效果如下:


3)排序相關(guān),例如:

datatable(head(mtcars, 30), options= list(order = list(list(4, 'desc'), list(2, 'asc'))))

上述代碼的意思為,取數(shù)據(jù)集mtcars的前30行,對第四列降序排列,若第四列數(shù)值相同,則按照第二列升序進行排列。這種設(shè)置只是控制表格的初始呈現(xiàn)方式,之后在頁面上點擊排序按鈕,依舊可以改變排列順序。


4)DOM元素:默認(rèn)情況下,表格具有以下由單字母表示的DOM元素:l- length (changing inputcontrol) 長度菜單,f-(filtering input) 篩選搜索框,t- (table) 表格主體,i- (information summary) 信息摘要和p- ( pagination control) 分頁控件??梢赃x擇使用dom選項來組合想要可視化顯示的子集。例如:

datatable(iris, options = list(dom = 'pt')) # 可視化只顯示表格主體和分頁器
datatable(iris, options = list(dom = 'lpt')) # 可視化顯示表格主體、分頁器和長度選擇菜單

需要注意的是,表格主體默認(rèn)顯示,即不管dom選項里包不包含t,都顯示表格。


5)選項中的回調(diào):我們還可以在options選項中自定義回調(diào)函數(shù)(callback function)。例如,可以在選項中使用initComplete回調(diào)函數(shù)在初始化后將表頭的背景顏色更改成其他顏色:

datatable(head(iris, 20), options = list(
  initComplete = JS(
    'function(settings, json) {',
    '$(this.api().table().header()).css({'background-color':'#000080','color': '#ffff00'});',
'}')))

上述代碼的意思為,將表頭的背景顏色改為藍色,列名改為黃色,所使用的顏色都是RGB顏色代碼。

注:函數(shù)JS( ) 表示這個元素不是普通的字符向量,而是JavaScript代碼。這個特殊的功能,使得使用者可以在R中直接編輯JavaScript函數(shù)(使用jsonlite)并在瀏覽器中對其解碼。

對于令人頭痛的options參數(shù)列表的具體應(yīng)用,小編可以負(fù)責(zé)任的告訴大家,想全部掌握,那是——不可能的。粗略估計大小參數(shù)大概有幾十個吧。不過大家不用過于憂慮,小編找到一個好東西:https:///reference/option/

這個網(wǎng)站對datatable函數(shù)中的options參數(shù)進行了匯總,并且提供了查詢功能。界面如圖:

可以根據(jù)下方黑框內(nèi)的功能提示,查找自己想要的參數(shù)用法。也可以在搜索框內(nèi)直接輸入?yún)?shù),比如columnDefs列定義參數(shù),點擊搜索之后會呈現(xiàn)其具體用法和該參數(shù)下面所有的二級甚至三級參數(shù)設(shè)置,一目了然,十分方便。

 

好了,對于DT包的簡單介紹就到這里了,更多使用方面的細節(jié)還請查詢官方網(wǎng)站:https://rstudio./DT/。小編也會將自己最近在學(xué)的小工具和小方法給大家持續(xù)分享,感謝關(guān)注,我們下次見!么么噠~!


有生信分析請留言

TCGA | 小工具 | 數(shù)據(jù)庫 |組裝注釋 |   基因家族  |  Pvalue

基因預(yù)測  |bestorf |  sci NAR | 在線工具 | 生存分析 | 熱圖

 生信不死 | 初學(xué)者 | circRNA | 一箭畫心| 十二生肖 | circos

 舞臺|基因組 | 黃金測序 | 套路 | 雜談組裝 |  進化 | 測序簡史


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲一级在线免费观看| 亚洲日本久久国产精品久久| 欧美成人免费一级特黄| 日韩成人高清免费在线| 99久久免费中文字幕| 久久精品久久久精品久久| 日本特黄特色大片免费观看| 国产精品免费无遮挡不卡视频| 中文字幕高清不卡一区| 亚洲妇女作爱一区二区三区| 国产精品亚洲一区二区| 中文字幕日韩无套内射| 亚洲乱码av中文一区二区三区| 麻豆91成人国产在线观看| 日韩毛片视频免费观看| 日韩国产中文在线视频| 中文字幕在线区中文色| 国产精品99一区二区三区| 极品熟女一区二区三区| 深夜少妇一区二区三区| 亚洲一区二区精品久久av| 国产日韩欧美在线播放| 日韩中文字幕在线不卡一区| 国产av一区二区三区麻豆| 久久热这里只有精品视频| 日韩欧美国产高清在线| 91亚洲国产日韩在线| 国产精品免费自拍视频| 在线观看那种视频你懂的| 日本女人亚洲国产性高潮视频| 人妻少妇av中文字幕乱码高清| 欧美黑人巨大一区二区三区 | 操白丝女孩在线观看免费高清| 亚洲熟女一区二区三四区| 国产日韩欧美在线播放| 欧美午夜性刺激在线观看| 日韩蜜桃一区二区三区| 中文字幕一区二区久久综合| 黄男女激情一区二区三区| 免费大片黄在线观看国语| 好吊妞视频这里有精品|