r - 如何根据 R 中的条件更改整个表格值的字体颜色?
问题描述
我想根据整个表格的条件更改所有值的字体颜色。参考下表
`Category Name` Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug
<fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Diet Soda 6.05 -5.05 8.70 32.4 -11.0 -26.8 3.19 0.336 -2.62 -3.91 -7.04
2 Soda -8.45 -17.6 0.602 16.5 -14.9 -22.8 15.1 9.75 18.1 28.3 32.2
3 Sparkling Beve~ 9.85 6.58 23.1 42.3 6.43 -15.3 16.6 6.61 6.31 8.53 2.46
4 Energy 30.4 29.1 60.1 91.3 41.4 20.1 67.6 61.2 56.9 56.4 56.4
5 Tea -18.9 -25.4 -2.93 15.2 -17.3 -26.8 9.75 1.28 -2.45 -4.73 4.42
6 Water -10.5 -24.5 -5.66 20.8 -17.5 -33.1 7.43 -5.08 10.6 6.11 -1.01
7 Rtd Coffee -8.65 -11.9 2.63 14.3 -17.5 -32.7 -4.51 -6.31 -15.5 4.56 11.5
8 Vitamin Enhanc~ 36.6 35.2 63.0 110. 53.0 24.7 79.3 64.7 49.7 36.8 34.7
9 New Age Bevera~ -17.5 -16.9 -6.23 12.9 -14.5 -27.2 -16.5 -21.1 -37.0 -33.9 -25.2
10 Hydration / Sp~ 8.71 1.15 18.2 50.1 9.39 -12.4 46.6 45.5 32.7 43.8 40.5
11 Juice -0.414 2.89 45.6 65.3 5 -11.6 16.6 22.2 15.4 29.2 16.4
12 Flavored Nonca~ 65.2 69.1 89.0 114. 78.1 63.4 123. 86.4 85.0 33.8 22.8
13 Soda Can -100 -100 NaN NaN NaN NaN NaN -100 NaN NaN NaN
14 Milk NA NA NA NA NA NA NA NA NA 1250 1114.
15 Diet Soda Can NA -100 NA NA NA NA NA NA NA -75 NA
16 Probiotic Beve~ NaN NaN NA NA NA NA NA NA NA NA NA
# ... with 1 more variable: Sep <dbl>
我想将所有 - 值设置为红色,将所有 + 值设置为绿色。我尝试设置一个全局变量以在我的格式化表中调用,但它不起作用。参考代码如下:
formatter_bev <-
formatter("span",
style = x ~ style(
font.weight = "bold",
color = ifelse(x > 0, "green", ifelse(x < 0, "red"))))
bev_percent_plt <- formattable(Bev_Percent_change_table, align =c("l","c","c","c","c", "c", "c", "c", "c", "c", "c", "r"), list(
`Indicator Name` = formatter("span", style = ~ style(color = "grey",font.weight = "bold")), formatter_bev(col=2:13)))
任何帮助将不胜感激!
解决方案
你几乎拥有它。而不是“formatter_bev(col=2:13)”,改变一列你会写:
oct = formatter_bev
要更改多个,这是一个“区域”,因此您需要:
area(col = 2:13) ~ formatter_bev
在这里找到:https ://cran.r-project.org/web/packages/formattable/vignettes/formattable-data-frame.html
而且,您的 ifelse 语句缺少数字为 0 时的值,因此您应该添加第三种颜色,例如:
color = ifelse(x > 0, "green", ifelse(x < 0, "red", "grey"))
推荐阅读
- c - 严格的别名违规:为什么 gcc 和 clang 生成不同的输出?
- android - SELECT * FROM sqlite_master WHERE type='table' 返回 Android Pie 中 sqlite 中的元数据表
- java - @ControllerAdvice 中@ExceptionHandler 返回的 ResponseEntity 无法在 swagger-ui.html 中显示
- fonts - 如果 OpenType 中的 Local 和 Global Subr INDEX 基本上是可重用的组件
- c# - 从 CADES 签名的 XML 文件中提取原始文件内容
- java - 根据 GitLab C 上的 JWT 异常,无法在 JSON 有效负载中找出错误
- django-rest-framework - 未提供身份验证凭据 - Django
- r - 隐藏和清除 selectInput
- jenkins - 如何在 Jenkins 中使用审计跟踪插件将当前日期和时间附加到日志文件名
- arrays - 以字符串为键的 VB.Net 数组