为什么R语言formattable包的条件格式不生效?无法高亮指定列目标值
R语言formattable包条件格式不生效解决方案
你的代码逻辑本身没有问题,无法生效通常由两个原因导致:
- 没有提前加载
formattable依赖包:formatter、color_tile都是该包的专属功能,未加载时会触发未知对象报错,导致格式规则不生效 - 使用不支持HTML渲染的编辑器运行:formattable的格式化效果基于HTML实现,旧版RGui不支持直接展示,需要在RStudio的Viewer面板查看,或者导出为HTML文件后打开查看
如果还提示包不存在,先运行install.packages("formattable")完成安装再运行下述代码。
完整可运行代码如下:
# 加载依赖包 library(formattable) # 构造测试数据 df <- data.frame( YesNo = c("yes","no","yes","no"), Numbers = c(4, 5, 10, 10) ) rownames(df) <- c("Test1","Test2","Test3","Test4") # 定义YesNo列的格式化规则 sign_formatter <- formatter("span", style = x ~ style(color = ifelse(x == "yes", "green", ifelse(x =="no", "red", "black"))) ) # 生成带格式的表格 formattable(df, list( YesNo = sign_formatter, Numbers = color_tile("transparent","lightgreen") ))
运行上述代码后,在RStudio Viewer面板可以看到效果:YesNo列取值为yes的文本为绿色、no为红色,Numbers列数值越高绿色填充越深。
内容的提问来源于stack exchange,提问作者Dreammmm
相关产品推荐
相关产品推荐

