Мне нравится иметь два десятичных знака, которые обычно работают с kable. Но использование kableExtra для условного форматирования не показывает конечные нули, если есть одна ячейка, для которой условие TRUE.
MWE показывает ситуацию, когда я получаю одну полужирную ячейку, если значение больше 1,2, и ситуацию без полужирной ячейки, если значение не больше 1,5. Условное форматирование работает как положено. Но в 3 из 4 примеров я теряю завершающие нули.
Любые идеи, почему (и как предотвратить эффект) очень приветствуются.
# MWE kableExtra cell_spec loses trailing decimal zeros during conditional formatting
rm(list=ls())
library("knitr")
library("kableExtra")
library("dplyr")
df <- data.frame(item=c(1 , 1.2, 1.23))
# Condition for cell-specification for each cell false
df[df$item>1.5,1] <- cell_spec (df[df$item>1.5,1], "html",bold=TRUE)
# output for each cell with two decimals
knitr::kable(df, digits=2, escape=FALSE)
item
1,00
1,20
1,23
df <- data.frame(item=c(1 , 1.2, 1.23))
# Condition for cell-specification for one cell true
df[df$item>1.2,1] <- cell_spec (df[df$item>1.2,1], "html",bold=TRUE)
# output for each cell with needed decimals only, trailing zeros lost
knitr::kable(df, digits=2, escape=FALSE)
элемент
1
1.2
1.23
df <- data.frame(item=c(1 , 1.2, 1.23))
# alternative way loses trailing zeros whether condition is TRUE or FALSE
df %>%
transmute(cell_spec(df$item, bold=ifelse(df$item>1.5,"TRUE","FALSE"))) %>%
kable( digits=2, escape=FALSE)
cell_spe c (dfitem, полужирный = ifelse (dfitem> 1.5, «TRUE», «FALSE»))
1
1,2
1,23
df <- data.frame(item=c(1 , 1.2, 1.23))
df %>%
transmute(cell_spec(df$item, bold=ifelse(df$item>1.2,"TRUE","FALSE"))) %>%
kable( digits=2, escape=FALSE)
cell_spe c (dfitem, полужирный = ifelse (dfitem> 1,5) , «ИСТИНА», «ЛОЖЬ»))
1
1,2
1,23