r shiny - DataTableOutput - 特定颜色的行和colomns

时间:2015-08-19 18:49:22

标签: r datatables shiny dt

有没有办法在r shiny的dataTableOutput中为特定行着色?

我发现的是我可以设置orderClasses = TRUE来为有序列着色,但我想总是为输出数据表的第2列和第2行着色。我一直在阅读选项手册,但没有找到任何东西。

-----------编辑-------------

好的,所以在Yihui和user5029763的建议之后我现在能够使用DT突出显示列,但是我仍然无法突出显示行。这是我使用虹膜数据集作为示例的代码 - 这里我试图突出显示整行,如果Species是setosa,但是,在我的计算机上,它只突出显示setosa的单元格:

datatable(iris) %>% formatStyle(
  'Species',
  target = 'row',
  backgroundColor = styleEqual('setosa', 'gray')
)

enter image description here

------- edit -----------------------

抱歉这篇文章很长 - 事实上,我运行了这里指定的确切代码: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'))
)

它仍然只是在我的计算机上突出显示单元格而不是行。我使用的是R的3.2.1版和RStudio的0.99.447版。我也有github版本的闪亮,不确定是否可以覆盖数据表中的任何选项?

2 个答案:

答案 0 :(得分:2)

Yihui发布的链接很好地解释了formatStyle,但我认为那里没有提到“目标”这个论点。

要为整行着色,请使用... class func fetchMinionData() -> [Minion] { var myURL = "http://myurl/test.json" let dataURL = NSURL(string: myURL) let request = NSURLRequest(URL: dataURL!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 5.0) let session = NSURLSession.sharedSession() session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in let minionJSON = JSON(data!) var minions = [Minion]() for (_, minionDictionary) in minionJSON { minions.append(Minion(minionDetails: minionDictionary)) } return minions //THIS IS WHERE THE ERROR OCCURS }).resume() } ... 中的参数target="row"

答案 1 :(得分:1)

使用target = 'row'的选项仅在github上的DT包的开发版本中可用,而不是在CRAN版本中。

安装开发版

install.packages("devtools")
devtools::install_github('rstudio/DT')

上面的代码应该可行。 @yihui可以证实这一点吗?