【发布时间】:2017-06-05 21:35:18
【问题描述】:
我需要在我的数据表中实现条件格式。请参阅下面的示例。我需要的是根据该数字是否大于第 4 行和第 5 行中的阈值来突出显示第三行“PercentDone”。
如果数字大于 50%,我想将其突出显示为绿色。
如果它在 25% 和 50% 之间,我想用黄色突出显示它。
如果低于 25%,我想用红色突出显示。
这类似于有人在 Excel 中使用条件格式执行的操作,我只是不确定如何在 R 中的数据表中实现它。
在下面的示例中,第 1 列中的 46% 应为黄色,第 2 列中的 11% 应为红色,第 3 列中的 65% 应为绿色。
df = data.frame(
c(51, 59, '46%', '25%', '50%'),
c(12, 93, '11%', '25%', '50%'),
c(40, 22, '65%', '25%', '50%'))
colnames(df) = c('Location1', 'Location2', 'Location3')
rownames(df) = c('Done', 'Need', 'PercentDone', 'Threshold1', 'Threshold2')
DT = datatable(df) %>%
formatStyle(...)
【问题讨论】:
-
阈值是每次都改变还是固定的?
-
你的 df 每一列的混合格式(数字和字符)是故意的吗?
-
感谢您的回复。是的,这是故意的,因为桌子必须这样看。我想获得第 3 行的数字版本可以由
as.numeric(gsub('%', '', df[3,]))完成。阈值是固定的,这确实使它更容易一些。我主要对在formatStyle()中添加什么感到困惑。 -
有谁知道实现这一目标的方法吗?