r - 将 kableExtra::cell_spec() 输出与自定义 S3 格式化方法相结合
问题描述
我正在尝试在包含一些自定义 S3 类的 HTML 表中为条件格式添加颜色。我怎样才能保留我用于 S3 类的格式化方法并且仍然改变表格中单元格的外观?
例如:
library(dplyr)
library(kableExtra)
df <- data.frame(a = c(-1.2345, 0, 1.2345), b = c(-1.2345, 0, 1.2345))
format.myclass <- function(x, ...) {
paste(round(x, 2), "♥")
}
class(df$a) <- c("myclass", class(df$a))
class(df$b) <- c("myclass", class(df$b))
在此数据框中,此类的所有数字都正确显示:
> df
a b
1 -1.23 ♥ -1.23 ♥
2 0 ♥ 0 ♥
3 1.23 ♥ 1.23 ♥
但是当我将 kableExtra 样式属性添加到单元格时,它不再起作用:
df %>% mutate(a = cell_spec(a, color = ifelse(a<0, "red", "green"))) %>%
kable(., escape = F) %>%
kable_styling()
有没有办法myclass
在使用时保持格式cell_spec()
?
更新:显式调用类格式化程序使这项工作:
df %>% mutate(a = cell_spec(format.myclass(a), color = ifelse(a<0, "red", "green"))) %>%
kable(., escape = F) %>%
kable_styling()
但是有没有办法为它的类自动调用这个格式化程序?
解决方案
推荐阅读
- javascript - 可以使用纯浏览器 JS 进行网页抓取吗?
- swift - 如何使用 NavigationLink 在 SwiftUI 中创建文本(仅文本中的一些单词)
- android-studio - 从服务器端运行套接字应用程序(Android 工作室)
- python - 防止python脚本使用所有ram
- html - CSS Grid:让某些孩子定义容器高度并迫使其他孩子缩小到它
- python - 如何从 nsmallest 而不是 .core.series.Series 中获取价值
- flutter - 登录后如何从 rest API 获取 Flutter Provider 状态?
- alpine.js - 如何在 alpinejs 的 x-text 中不出现 NAN 错误
- flutter - Flutter web:将 CSV 文件存储到 Firebase 存储,无需从计算机上传
- performance - 在 OpenCV 中就地 RGB->BGR 颜色转换较慢