In blow code , the total cell finally show <span style="front-weight: bold">total</span>
,
How to handle it and make it show text 'total' with whished font, Thanks!
library(tidyverse)
library(formattable)
df <- data.frame(category=c('a','b','total'),value=c(1,2,3))
formattable(df,list(
area(row = 3) ~ formatter("span", style = x ~ style(front.weight = "bold")),
category = formatter("span", style = x ~ ifelse(x != 'total', style(color = "red"),x))))
We could create two formatter
and pass it as
library(formattable)
format_cat <- formattable::formatter("span",
style = x ~ ifelse(x != 'total',
style(color = "red"), style(font.weight = "bold"))
)
format_oth <- formattable::formatter("span",
style = x ~ ifelse(seq_along(x) ==3, style(font.weight = "bold"), x)
)
formattable(df,list(
value = format_oth,
category = format_cat))
-output
Or create a single function and loop over the column names, apply the function and pass it on to formattable
format_gen <- function(colnm) {
formattable::formatter("span",
style = x ~ {
style_red <- style(color = "red")
style_bold <- style(font.weight = "bold")
if(colnm == "category") {
ifelse(x != 'total',
style_red, style_bold)
} else {
ifelse(seq_along(x) == 3, style_bold, x)
}
}
)
}
-testing
formattable(df, setNames(lapply(names(df), format_gen), names(df)))
-output