我想使用kableExtra包编写一个函数。目的是引入一个表或数据框,并以粗体显示某些单元格并以不同的字体颜色返回它。
该功能如下:
xKable <- function(tau, var, cond, strCol){
require(kableExtra)
require(dplyr)
kab <- tau %>%
mutate(var = ifelse(paste(var, cond, sep=""), cell_spec(var, "latex", bold = T, color = strCol), var)) %>%
kable("latex", escape = F, booktabs = T) %>%
kable_styling(latex_options = c("hold_position", "scale_down"))
return(kab)
}
例如:
xKable(tau = head(iris), var = "Sepal.Length", cond= ">=5", strCol = "green")
这不起作用。但是,如果我以手动方式(波纹管形式)进行操作,那么它将起作用:
head(iris)%>%
mutate(Sepal.Length = ifelse(Sepal.Length>=5, cell_spec(Sepal.Length, "latex", bold = T, color = "green"), Sepal.Length)) %>%
kable("latex", escape = F, booktabs = T) %>%
kable_styling(latex_options = c("hold_position", "scale_down"))
我认为问题在于引入变量var
和cond
作为字符。我该如何引入这些变量,或在函数内部更改它们的处理方式,以使该函数能够识别?
谢谢!