Почему содержимое некоторых ячеек изменяется после вязания объекта kable? - PullRequest
0 голосов
/ 24 марта 2020

Сегодня я начал работать с kableExtra для создания таблиц в уценке R. Я доволен выводом скрипта при запуске. Однако после вязания значение в формате (00), представляющем проценты, неожиданно изменяется на 00. с изменением выравнивания. Есть ли. способ исправить это, пожалуйста?

библиотека (tidyverse) библиотека (kableExtra)

df <- data.frame(matrix(nrow = 5, ncol = 0))
df <- df %>%
  mutate(X1 = c("a", "b", "c", "d", "e"),
         X2 = c("n (%)", "n (%)", "median (IQR)", "median (IQR)", "n (%)"),
         X3 = c(5,6,2,4,5), 
         x4 = c("(15)", "(23)", "(1-3)", "(2-5)", "(15)"))

kable(df, col.names = c("", "", "", ""), align = c("l", "l", "r", "l")) %>%
  kable_styling(bootstrap_options = "condensed", full_width = FALSE) %>%
  add_header_above(c("Number of cases" = 2, "60" = 2), line = FALSE) %>%
  add_header_above(c(" " = 2, "Admission" = 2), line = FALSE) %>%
  add_header_above(c("Table 1." = 4), align = "left") %>%
  column_spec(c(3:4), width = "3em") %>%
  column_spec(c(2), width = "7em") %>%
  column_spec(c(1), width = "6em") %>%
  footnote(general = "IQR, interquantile range")

Table after run

Table after knit

1 Ответ

0 голосов
/ 25 марта 2020

Кажется, проблема возникает только тогда, когда в скобках есть целое число. Добавление десятичного числа di git к процентам решило проблему.

Я использовал sprintf, чтобы принудительно поддерживать единичную ди git (даже когда .0) в моем фактическом коде с round_half_up.

Вот вместо этого воспроизводимый код .

df <- data.frame(matrix(nrow = 5, ncol = 0))
df <- df %>%
  mutate(X1 = c("a", "b", "c", "d", "e"),
         X2 = c("n (%)", "n (%)", "median (IQR)", "median (IQR)", "n (%)"),
         X3 = c(5,6,2,4,5), 
         x4 = c("(15.8)", "(23)", "(1-3)", "(2-5)", "(15.0)"))

kable(df, col.names = c("", "", "", ""), align = c("l", "l", "r", "l")) %>%
  kable_styling(bootstrap_options = "condensed", full_width = FALSE) %>%
  add_header_above(c("Number of cases" = 2, "60" = 2), line = FALSE) %>%
  add_header_above(c(" " = 2, "Admission" = 2), line = FALSE) %>%
  add_header_above(c("Table 1." = 4), align = "left") %>%
  column_spec(c(3:4), width = "3em") %>%
  column_spec(c(2), width = "7em") %>%
  column_spec(c(1), width = "6em") %>%
  footnote(general = "IQR, interquantile range")

введите описание изображения здесь

...