不要删除 kable 函数中的空格 - 例如

Do not remove spaces in kable function - with example

我正在汇总数据并在 Shiny 应用程序中创建 table。我的基本问题是,我想在连接字符串的元素之间添加一些额外的 spaces 以使其更具可读性,但添加的 spaces 似乎消失了。我认为 paste() 函数在“+/-”符号周围适当地添加了额外的 space,但是使用 kable 或 kableExtra 创建 table 会删除 spaces .

我想我是在问 the same question as this person did,但是那个人没有提供完整的可重现示例。我试图在下面使用 iris 数据集创建一个 reprex。

我尝试了三次使用 mutate() 创建带有“+/-”符号的新变量。我最好的理解是这不是真正的问题。为了便于阅读,我希望能够在此符号的任一侧添加任意数量的空白 space。

library(tidyverse)
library(kableExtra)


data(iris)


data.summary = iris %>% 
  group_by(Species) %>% 
  summarise(N = n(),
            avg.sepal.width = round(mean(Sepal.Width),2),
            sd.sepal.width = round(sd(Sepal.Width),2)) %>% 
  # mutate(table.name = paste(avg.sepal.width, '\u00B1', sd.sepal.width)) %>% 
  # mutate(table.name = paste(avg.sepal.width, '\u00B1', sd.sepal.width, sep= "    ")) %>% 
  mutate(table.name = paste(avg.sepal.width, '   ', '\u00B1','   ', sd.sepal.width, sep= "    ")) %>% 
  


  knitr::kable(caption = "Iris Avg Sepal Width \u00B1 Standard Deviation ", align = "c") %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F, position = "left") 


data.summary

这是在 RStudio 中查看的结果 table 的屏幕截图。使用 Shiny 时,结果是一样的。无论我添加了多少 space,在 table

中格式化后它们都会消失

这不是 kable 问题。这就是 html 的行为方式。如果您想在文本中添加额外的空格,您需要在文本中添加 " "。将其设为粘贴分隔符,并确保将 escape = FALSE 转入 kable:

library(tidyverse)
library(kableExtra)

data(iris)

data.summary = iris %>% 
  group_by(Species) %>% 
  summarise(N = n(),
            avg.sepal.width = round(mean(Sepal.Width),2),
            sd.sepal.width = round(sd(Sepal.Width),2)) %>% 
  mutate(table.name = paste(avg.sepal.width, '\u00B1', 
                            sd.sepal.width, sep = " ")) %>% 
  knitr::kable(caption = "Iris Avg Sepal Width \u00B1 Standard Deviation ", 
               align = "c", escape = FALSE) %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed"), 
                            full_width = F, 
                            position = "left") 

data.summary