r shiny - DataTableOutput - 颜色特定的行和列
Posted
技术标签:
【中文标题】r shiny - DataTableOutput - 颜色特定的行和列【英文标题】:r shiny - DataTableOutput - color specific rows and colomns 【发布时间】:2015-11-13 05:13:51 【问题描述】:有没有办法为 r shiny 的 dataTableOutput 中的特定行着色?
我发现我可以将 orderClasses = TRUE 设置为按颜色排序的列,但我想始终为输出数据表的第 2 列和第 2 行着色。我一直在阅读选项手册,但没有找到任何东西。
-----------编辑-------------
好的,所以在 Yihui 和 user5029763 的建议之后,我现在可以使用 DT 突出显示列,但我仍然无法突出显示行。这是我使用 iris 数据集作为示例的代码 - 如果 Species 是 setosa,我会尝试突出显示整行,但是,在我的计算机上,它只会突出显示 setosa 的单元格:
datatable(iris) %>% formatStyle(
'Species',
target = 'row',
backgroundColor = styleEqual('setosa', 'gray')
)
------- 编辑 -----------
抱歉,这篇文章太长了——事实上,我运行了这里指定的确切代码:http://rstudio.github.io/DT/010-style.html
library(DT)
options(DT.options = list(pageLength = 5))
df = as.data.frame(cbind(matrix(round(rnorm(50), 3), 10), sample(0:1, 10, TRUE)))
datatable(df) %>% formatStyle(
'V6',
target = 'row',
backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)
它仍然只突出显示我计算机上的单元格而不是行。我使用的是 3.2.1 版的 R 和 0.99.447 版的 RStudio。我也有 github 版本的 Shiny,不确定是否会覆盖数据表中的任何选项?
【问题讨论】:
我相信这需要创建一个自定义的.css
文件并创建一个新类(例如.dt-hightlight background-color: yellow;
)并将其应用于相关的行/列。我不确定行类,但对于列,应该有className
的选项。
是的,烦人的行...
我不确定你到底在读什么,但如果你还没有读过,请阅读:rstudio.github.io/DT/functions.html
啊,我使用的是 Shiny 的 renderDataTable 函数,而不是 DT,所以我查看了 Shiny 的页面 - shiny.rstudio.com/articles/datatables.html,以及 jQuery 数据表页面 - datatables.net(链接到来自 Shiny 的页)。 DT 包似乎就是我要找的东西
【参考方案1】:
Yihui 发布的链接很好地解释了 formatStyle,但我认为那里没有提到参数“目标”。
要为整行着色,请在formatStyle
中使用参数target="row"
。
【讨论】:
谢谢,这正是我正在寻找的内容。现在,我可以按照 Yihui 的说明突出显示列,并且使用 target = "row" 仅突出显示一个单元格而不是一行。我在我的问题中添加代码。【参考方案2】:使用target = 'row'
的选项仅在github上DT
包的开发版本中可用,在CRAN版本中不可用。
安装开发版
install.packages("devtools")
devtools::install_github('rstudio/DT')
您上面的代码应该可以工作。 @yihui 可以确认一下吗?
【讨论】:
以上是关于r shiny - DataTableOutput - 颜色特定的行和列的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 Shiny 更新的 DT::renderDataTable 和 DT::dataTableOutput 按列搜索?