![](/img/trans.png)
[英]How to target specific columns with rowCallback jquery for DT::Datatable in R
[英]R DT: select specific columns in an interactive htmlwidget DT datatable
我有一个数据集,假设有两列。 一列用于得分,另一列用于实际值。 我想根据分数列为实际值列着色,然后删除分数列。 我已经这样做了,但我无法使用DT::datatable
选项删除分数列。 请记住,我所说的数据表是指DT::datatable()
交互式界面 html 小部件表。
## Sample df ##
df = data.frame(
actual = sample(1:10),
score = runif(10)
)
----------
## Coloring breaks ##
brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE)
clrs <- round(seq(255, 40, length.out = length(brks) + 1), 0) %>%
{paste0("rgb(255,", ., ",", ., ")")}
----------
## Generating DT ##
datatable(df) %>% formatStyle(
'actual', 'score',
backgroundColor = styleInterval(brks, clrs))
此处有关样式的更多信息:
不适用的解决方法
您可以在生成数据表之前先 select 列。 即df %>% select(actual) %>% datatable(.)
但这在我的情况下不起作用,因为我必须先进行样式设置,然后是 html 小部件中的 select。
预期的解决方法
我想要一个选项来指定 select 使用DT::datatable()
的列(在这种情况下只有值列),在我的真实案例中是多列。
所以问题是如何使用以下语法 select 值列?
datatable(df)
有一个名为selected
的选项,但它说它适用于 shiny。 我已经阅读了有关选项的信息,并且有一个select.item
可能有效,但我可能缺少正确的语法。
解决方案是隐藏/使列可见。 要隐藏它们:
这是通过使用 boolean 的可见性和目标列的选项columnDefs
完成的。 您可以使用向量 a c()
提供多个
datatable(df,
options = list(columnDefs =
list(
list(visible=FALSE, targets=c(2))
)
)) %>%
formatStyle(
'actual', 'score',
backgroundColor = styleInterval(brks, clrs))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.