有没有办法在r shiny的dataTableOutput中为特定行着色?
我发现的是我可以设置orderClasses = TRUE来为有序列着色,但我想总是为输出数据表的第2列和第2行着色。我一直在阅读选项手册,但没有找到任何东西。
-----------编辑-------------
好的,所以在Yihui和user5029763的建议之后我现在能够使用DT突出显示列,但是我仍然无法突出显示行。这是我使用虹膜数据集作为示例的代码 - 这里我试图突出显示整行,如果Species是setosa,但是,在我的计算机上,它只突出显示setosa的单元格:
datatable(iris) %>% formatStyle(
'Species',
target = 'row',
backgroundColor = styleEqual('setosa', 'gray')
)
------- 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版本的闪亮,不确定是否可以覆盖数据表中的任何选项?
答案 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可以证实这一点吗?