问题描述
在R markdown中,我试图使用kable包有条件地格式化html表。我有一个表bigT_output看起来像这样 enter image description here
我使用Kable将此代码格式化
kable(bigT_output[,1:7],booktabs=TRUE,align="c") %>%
pack_rows(
index = c("Performance Standard" = 1,"Percentile Rank (max 100)" = 3,"Productivity" = 2)
)%>%
kable_styling(bootstrap_options = "hover")
它使html输出中的这个漂亮的表: enter image description here
理想情况下,我想格式化整个第一行(等级),以根据背景是ME,BE,DE等来更改背景。但是为了测试,我试图更改仅一列的背景。当我使用cell_spec时,它将删除所有行标签,并忽略我的其他kable格式选项,如下所示: enter image description here
这是代码:
bigT_output %>%
mutate(Merch = cell_spec(Merch,"html",background="green")) %>%
kable(bigT_output[,"Productivity" = 2)
)%>%
kable_styling(bootstrap_options = "hover")
如何既可以使表带有小标题又可以使表的某一行格式化又又不丢失行标签呢?我尝试做的所有事情总是出错。谢谢您的阅读。
解决方法
解决方案是将行名保存在创建表的函数中。然后调用该函数,转换为数据框,进行变色以获取颜色(mutate_all(funs()),添加行名(rownames<-
(bigT_row_names)),然后应用kable_styling。