【发布时间】:2019-04-09 03:03:01
【问题描述】:
我正在尝试使用 kableextra 创建一个表。我想更改值的颜色,以便将那些值 >= 85 更改为绿色,将那些
我已经能够使用 kableextra 文档更改单个值并指定我想要更改的每一列,但我想使用多个 if 语句而不是 ifelse,除非有更好的方法。
我目前使用的代码是:
library(dplyr)
library(kableExtra)
Subject <- c("Database", "Java", "C++", "Physics", "Mathematics", "English", "Chemistry", "Networks", "Security")
A <- c(69, 64, 70, 57, 80, 34, 45, 56, 96)
B <- c(70, 74, 68, 76, 71, 56, 56, 45, 30)
C <- c(84, 58, 87, 78, 67, 67, 43, 34, 56)
D <- c(78, 83, 68, 72, 90, 48, 23, 23, 46)
E <- c(79, 55, 91, 71, 34, 26, 76, 67, 75)
F <- c(80, 72, 64, 45, 66, 76, 45, 56, 54)
G <- c(90, 67, 76, 51, 45, 59, 33, 64, 34)
H <- c(60, 59, 88, 90, 76, 34, 43, 72, 45)
student_results <- data.frame(Subject, A, B, C, D, E, F, G, H)
rownames(student_results) <- c("Database", "Java", "C++", "Physics", "Mathematics", "English", "Chemistry", "Networks", "Security")
student_results %>%
mutate(
A = cell_spec(A, "html", color = ifelse(A >= 85, "coral", "black")),
B = cell_spec(B, "html", color = ifelse(B >= 85, "coral", "black")),
C = cell_spec(C, "html", color = ifelse(C >= 85, "coral", "black")),
D = cell_spec(D, "html", color = ifelse(D >= 85, "coral", "black")),
E = cell_spec(E, "html", color = ifelse(E >= 85, "coral", "black")),
F = cell_spec(F, "html", color = ifelse(F >= 85, "coral", "black")),
G = cell_spec(G, "html", color = ifelse(G >= 85, "coral", "black")),
H = cell_spec(H, "html", color = ifelse(H >= 85, "coral", "black"))
) %>%
kable(format = "html", escape = FALSE) %>%
kable_styling("striped", full_width = FALSE)
这成功地改变了一个范围的值,但我希望能够格式化多个范围,并避免在处理大型数据集时需要单独指定每一列。
谢谢
【问题讨论】:
标签: r