首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DT软件包的数据表中的排序因子

使用DT软件包的数据表中的排序因子
EN

Stack Overflow用户
提问于 2016-02-26 16:46:08
回答 1查看 2.8K关注 0票数 5

我想以5%的增量显示数据,比如5-10%,10-15%等等。为此,我有一个数据框架,将它们作为一个因素存储,级别是范围的中点,标签是要显示的范围。例如,12.5级将标记为10-15%。

但是,我在使用datatable正确地对此进行排序时遇到了问题。

代码语言:javascript
复制
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')))

如您所见,它似乎是对字符串的第一个数字进行排序,而不是根据因素的级别进行排序。

对于如何使数据表对因素级别进行排序,而不是字符串,有什么想法吗?(除了在将数据帧传递到数据表之前对其进行排序之外-我希望通过单击排序箭头,在任意方向上正确排序)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 17:15:12

您可以使用带有因子数值的隐藏列,并根据该隐藏列对这些因素进行排序:

代码语言:javascript
复制
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))))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35657271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档