Если я правильно понимаю, что вы хотите, это должно работать:
Сначала давайте преобразуем ваши числовые столбцы в символьные векторы с необходимым количеством десятичных знаков, используя formatC
DF[, -1] = lapply(DF[, -1], formatC, format = 'f', flag='0', digits = 2)
Теперь мы можем применить латексное форматирование, используя:
DF[,-1] = lapply(DF[,-1], function(x) cell_spec(x, background = paint(x), format = "latex"))
Обратите внимание, что paint
все еще работает с символьными векторами, потому что сравнение с числовым значением приводит их к числовому.
Вотполный воспроизводимый пример, демонстрирующий это на практике
set.seed(1234)
DF <- data.frame(V1 = sample(letters,10,T), V2 = abs(rnorm(10)), V3 = abs(rnorm(10)))
DF[, -1] = lapply(DF[, -1], formatC, format = 'f', flag='0', digits = 2)
DF[, -1] = lapply(DF[,-1], function(x) cell_spec(x, background = paint(x), format = "latex"))
# V1 V2 V3
# 1 c \\cellcolor{red}{0.51} \\cellcolor{yellow}{0.11}
# 2 q \\cellcolor{red}{0.57} \\cellcolor{red}{0.51}
# 3 p \\cellcolor{red}{0.55} \\cellcolor{red}{0.91}
# 4 q \\cellcolor{red}{0.56} \\cellcolor{red}{0.84}
# 5 w \\cellcolor{red}{0.89} \\cellcolor{red}{2.42}
# 6 q \\cellcolor{red}{0.48} \\cellcolor{yellow}{0.13}
# 7 a \\cellcolor{red}{1.00} \\cellcolor{red}{0.49}
# 8 g \\cellcolor{red}{0.78} \\cellcolor{red}{0.44}
# 9 r \\cellcolor{white}{0.06} \\cellcolor{red}{0.46}
# 10 n \\cellcolor{red}{0.96} \\cellcolor{red}{0.69}
kable(DF, caption = "Highlighted numbers near zero",
digits = 2, format = "latex", booktabs = T, escape = F, longtable = T) %>%
kable_styling(latex_options = c("striped", "hold_position",
"repeat_header", font_size = 6)) %>%
landscape() %>%
row_spec(0, angle = 45)
# \begin{landscape}
# \begin{longtable}{lll}
# \caption{\label{tab:}Highlighted numbers near zero}\\
# \toprule
# \rotatebox{45}{V1} & \rotatebox{45}{V2} & \rotatebox{45}{V3}\\
# \midrule
# \endfirsthead
# \caption[]{Highlighted numbers near zero \textit{(continued)}}\\
# \toprule
# \rotatebox{45}{V1} & \rotatebox{45}{V2} & \rotatebox{45}{V3}\\
# \midrule
# \endhead
# \
# \endfoot
# \bottomrule
# \endlastfoot
# \rowcolor{gray!6} c & \cellcolor{red}{0.51} & \cellcolor{yellow}{0.11}\\
# q & \cellcolor{red}{0.57} & \cellcolor{red}{0.51}\\
# \rowcolor{gray!6} p & \cellcolor{red}{0.55} & \cellcolor{red}{0.91}\\
# q & \cellcolor{red}{0.56} & \cellcolor{red}{0.84}\\
# \rowcolor{gray!6} w & \cellcolor{red}{0.89} & \cellcolor{red}{2.42}\\
# \addlinespace
# q & \cellcolor{red}{0.48} & \cellcolor{yellow}{0.13}\\
# \rowcolor{gray!6} a & \cellcolor{red}{1.00} & \cellcolor{red}{0.49}\\
# g & \cellcolor{red}{0.78} & \cellcolor{red}{0.44}\\
# \rowcolor{gray!6} r & \cellcolor{white}{0.06} & \cellcolor{red}{0.46}\\
# n & \cellcolor{red}{0.96} & \cellcolor{red}{0.69}\\*
# \end{longtable}
# \end{landscape}