我有一个类似于这个例子的数据文件:
>df
id prev_score cur_score change
1 10 8 -2
2 8 9 1
3 6 7 1
4 8 8 0
5 8 9 1我想根据prev_score列的值对change列单元格进行颜色化。例如,if df$change[i] > 0、df$prev_score[i]细胞颜色应为深蓝色,if df$change[i] == 0、df$prev_score[i]细胞颜色应为蓝色,if df$change[i] < 0、df$prev_score[i]细胞颜色应为浅蓝色。
发布于 2020-02-22 06:16:01
在您的问题中,tt不清楚您是否要更改文本或单元格的颜色。
对于文本的颜色,使用formattable,您可以:
library(formattable)
formattable(df, list(
prev_score = formatter("span",
style = ~style(font.weight = "bold", color =
ifelse(change > 0,"darkblue",
ifelse(change == 0,"blue",
ifelse(change <0, "lightblue",NA)))))
))

如果要着色框而不是文本,可以执行以下操作:
formattable(scores, list(
prev_score = formatter("span",
style = ~style(display = "block",
font.weight = "bold",
color = "white",
"border-radius" = "4px",
"padding-right" = "4px",
"background-color" =
ifelse(change > 0,"darkblue",
ifelse(change == 0,"blue",
ifelse(change <0, "lightblue",NA)))))
))

它能回答你的问题吗?
可复制示例
df <- data.frame(id = 1:5,
prev_score = c(10, 8, 6, 8, 8),
cur_score = c(8, 9, 7, 8, 9),
change = c(-2, 1, 1, 0, 1))https://stackoverflow.com/questions/60348825
复制相似问题