我有一个数据集:
ID Value
102 306
41 800
101 783
105 193
myID 334
我想将其绘制为一个数据表,其中只有带有“myID”的行被涂成橙色,而表的其余部分则变成蓝色。看了helper functions和other examples之后,看来我应该使用styleEqual。但是,我不知道其他行中的值是什么,它们也将动态更改。
我尝试使用
datatable(tableData) %>%
formatStyle(0, target= 'row',color = 'black', backgroundColor = tableColour,
lineHeight='70%', padding = '3px 3px', fontSize = '80%') %>%
formatStyle('ID', target = 'row',
backgroundColor = styleEqual(c("myID"), c('orange')))
但是,这不起作用-整个表为蓝色,并且第二个
formatStyle
语句被忽略。如果删除第一个formatStyle,我的行将变为橙色,但会丢失所有其他格式。有没有一种方法可以使用styleEqual定义例如c("myID", "All other IDs")
,还是有其他解决方法? 最佳答案
我可以想到两种可能的解决方法:
myID
,创建一个1或0的帮助器列,然后使用该列为表格设置样式并隐藏该列。 ID
列中的所有唯一值创建一个列映射,默认为某种颜色,并且仅将与myID
对应的值设置为橙色。 下面给出了第二个选项的工作示例。希望这可以帮助!
df = read.table(text='ID Value
102 306
41 800
101 783
105 193
myID 334',header=T)
library(DT)
my_vals = unique(df$ID)
my_colors = ifelse(my_vals=='myID','orange','grey')
datatable(df) %>%
formatStyle('ID', target = 'row',
backgroundColor = styleEqual(my_vals,my_colors))
关于r - DT in Shiny : Change only the colour of a single row,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49176026/