使用DT包在数据表中排序因子

时间:2016-02-26 16:46:08

标签: r sorting shiny dt

我想要以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')))

enter image description here

正如您所看到的,它似乎是从字符串的第一个数字中排序,而不是按因子的级别进行排序。

关于如何让数据表排除因子级别而不是字符串的任何想法? (除了在将数据框传递到数据表之前对数据框进行排序之外 - 我希望通过单击排序箭头在任一方向上对其进行正确排序)

1 个答案:

答案 0 :(得分:3)

您可以使用隐藏列和因子的数值,并根据隐藏列对因子进行排序:

run()