【发布时间】:2019-11-20 12:35:39
【问题描述】:
我对 R 比较陌生,我正在尝试使用 DT 包准备一个交互式数据表。我的数据包含数值,但其中一些值以 符号开头。对于我的数据表,我想要的是允许对数值进行交互式排序,无论前面是否有 符号。因此,例如 >10、8 应该排序为 8、9、>10。
我最初的方法是复制包含带有 符号的数值的列,从该复制列中删除 符号,并将此数据转换为数值以获得仅包含数值。然后我想要的是能够根据这些数值对表中的数据进行排序,但是我希望能够在单击包含带有 符号的数值的列的排序按钮时执行此操作。因此,我想隐藏仅包含数值的列(因为我不希望该列出现在表中),但我想以某种方式将原始列的排序函数链接到这个隐藏列。
这里有一些示例数据和一个脚本,其中我已经复制了列(b 到 c),删除了 符号,并将其转换为数值以获得 c 列,然后我将其隐藏:
library(DT)
df <- data.frame(a=1:5, b=c('10','5.0','2.0','< 1.0','> 20'), c=c(10,5,2,1,20))
DT <- DT::datatable(df,
options = list(columnDefs =
list(list(visible=FALSE,
targets=3))))
DT
我还没有找到一种方法,通过使用 b 列的排序按钮,对隐藏列 c 上的表中的数据进行排序。
我发现这在 JavaScript 中应该是可能的:jQuery DataTables - Ordering dates by hidden column 但是,我无法弄清楚如何在 R 中做同样的事情,或者通过在 R 中使用合适的函数,或者通过使用 JS() 函数在 JavaScript 中提供它。
谁能帮我解决这个问题?
【问题讨论】: