r - 使用行名更改数据表中行的背景颜色
问题描述
我有一个数据表,我想根据行名和行中存在的值对其进行自定义。
自定义数据表的颜色通常由列名完成,而不是行名。
下面是我的数据框。
df <- data.frame(`1st`=c(100, 39, 5.6),
`2nd`=c(200, 70, 5.9),
`3rd`=c(230, 100, 6.3),
`4th`=c(300, 98, 7.0))
rownames(df) <- c("Bins", "Accuracy", "SubYeild")
就我而言,如果您查看第三行,即 SubmissionYield,我希望该特定行的单元格为绿色,如果它大于 6,否则为红色。有什么办法可以做到这一点?
解决方案
好的,这是使用flextable
包制作漂亮表格的一种方法:
library(flextable) # may need install.packages("flextable") first
library(magrittr) # for the '%>%' piping function
df <- data.frame(`1st`=c(100, 39, 5.6),
`2nd`=c(200, 70, 5.9),
`3rd`=c(230, 100, 6.3),
`4th`=c(300, 98, 7.0))
rownames(df) <- c("Bins", "Accuracy", "SubYeild")
table <- df %>%
regulartable() %>% # turns it into a table
bg(i = 3, j = which(df[3, ] > 6), bg="green") %>%
bg(i = 3, j = which(df[3, ] <= 6), bg="red")
如果您只想为文本着色(而不是背景),您可以替换bg
为color
.
flextable
是创建漂亮表格的绝佳软件包。希望这就是你所追求的。
编辑:不知何故错过了绿色/红色位,现在将其添加
推荐阅读
- pointers - 为什么必须对指针使用星号而不是结构指针?
- c++ - 为什么我总是得到 Ř 而不是 č?(C++,视觉工作室)
- python - 如何用相同的键连接字典的值
- clojure - 编写一个尽可能延迟的类似展开器的函数来生成任意分解
- android - 是否在 viewModelScope 内改变 MutableLiveData?
- operating-system - 接收进程如何通过消息队列实际接收来自发送进程的进程?
- angular - Angular Firebase 身份验证请求
- r - 使用 BORUTA 包进行特征选择
- c - Dcoder 挑战“热爱数学”:只有三分之一的测试用例正确
- sql-server - Docker 中的 ASP.NET Core 3.0 : Seeding DB 在舞台上间歇性挂起,但从未在 dev 中挂起