簡體   English   中英

使用DT軟件包的數據表中的訂購因子

[英]Ordering factors in data table using DT package

我有一些要以5%增量顯示的數據,例如5-10%,10-15%等。為此,我有一個數據框將其存儲為一個因子,水平為范圍,標簽是要顯示的范圍。 例如,級別12.5將標記為10-15%。

但是,我在使用數據表正確排序時遇到了麻煩。

library('DT')
example <- data.frame(name = c('A', 'B', 'C', 'D'),
                  value = factor(c(7.5, 12.5, 7.5, 17.5),
                                  levels = c(7.5, 12.5, 17.5),
                                  labels = c('5-10%', '10-15%', '15-20%')))

datatable(example,
      rownames = FALSE,
      options = list(order = list(1, 'asc')))

在此處輸入圖片說明

如您所見,它似乎是按字符串的第一個數字排序的,而不是按因子級別排序的。

關於如何獲取數據表以整理因子水平而不是字符串的任何想法? (除了在將數據幀傳遞到數據表中之前對其進行排序之外,我希望通過單擊排序箭頭可以在任一方向上對其進行正確排序)

您可以將隱藏列與因子的數值一起使用,並根據該隱藏列對因子進行排序:

library('DT')
value <- factor(c(7.5, 12.5, 7.5, 17.5),
                levels = c(7.5, 12.5, 17.5),
                labels = c('5-10%', '10-15%', '15-20%'))

example <- data.frame(name = c('A', 'B', 'C', 'D'),
                      value = value,
                      levels=as.numeric(value))

datatable(example,
          rownames = FALSE,
          options = list(columnDefs=list(list(orderData=2,targets=1),
                                         list(visible=FALSE,targets=2))))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM