首页 > 解决方案 > 不要删除 kable 函数中的空格 - 以示例

问题描述

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

我想我问的问题和这个人一样,但是那个人没有提供一个完整的可重复的例子。我试图用 iris 数据集在下面创建一个代表。

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

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 中查看的结果表的屏幕截图。使用 Shiny 时,结果是一样的。无论我添加多少空格,在此表中格式化时它们都会消失

表格截图

标签: rshinyformattingkablekableextra

解决方案


这不是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

在此处输入图像描述


推荐阅读