标签: kable

如何在knitr中更改kable输出表中单元格的颜色

如果单元格的值大于80,我需要为单元格着色.例如,给定此数据框称为df:

dput(df)

structure(list(Server = structure(1:2, .Label = c("Server1", 
"Server2"), class = "factor"), CPU = c(79.17, 93), UsedMemPercent = c(16.66, 
18.95)), .Names = c("Server", "CPU", "UsedMemPercent"), row.names = c(NA, 
-2L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

df [2,2]应为红色.我能够使用xtable通过类似的方式更改文本的颜色:

df[, 2] = ifelse(df[, 2] > 80, paste("\\color{red}{", round(df[, 2], 2), "}"), round(df[, 2], 2))
Run Code Online (Sandbox Code Playgroud)

如果我这样做并用kable打印出桌子,它就不会打印出来.任何想法如何在kable输出表中为单元格着色?

r conditional-formatting knitr kable

2
推荐指数
3
解决办法
6223
查看次数

rmarkdown 在 kable 中转义 html

我正在尝试为我的 kable 表的单元格提供一些自定义 HTML 类。但问题是 div 的编码就像单元格的内容一样。我记得闪亮的桌子有一种方法可以让 celle 的内容逃逸并按原样解释。rmarkdown/knitr 有这样的东西吗?

例如:

make_green  function(x) {
    x <- paste('<div class="button is-success">',x,">/div>")

    return(x)
}

new_df <- iris %>% mutate(speci = make_green(Species))
kable(head(new_df))
Run Code Online (Sandbox Code Playgroud)

返回类似这样的内容:

<td style="text-align:right;"> 5.1 </td>
<td style="text-align:right;"> 3.5 </td>
<td style="text-align:right;"> 1.4 </td>
<td style="text-align:right;"> 0.2 </td>
<td style="text-align:left;"> setosa </td>
<td style="text-align:left;"> &lt;div class=&quot;button is-success&quot;&gt; setosa &lt;/div&gt; </td>
Run Code Online (Sandbox Code Playgroud)

但我希望它返回类似的内容:

<td style="text-align:right;"> 5.1 </td>
<td style="text-align:right;"> 3.5 </td>
<td style="text-align:right;"> 1.4 </td>
<td style="text-align:right;"> 0.2 </td>
<td style="text-align:left;"> setosa </td>
<td …
Run Code Online (Sandbox Code Playgroud)

html r knitr r-markdown kable

2
推荐指数
1
解决办法
1611
查看次数

如何使用控制台编织文件?

如何使用函数调用将以下内容编织到 PDF?

---
title: '`r params$college` report'
params:
  college: 'Art & Business'
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message = F)
```

```{r}
library(tidyverse)
library(knitr)
library(kableExtra)
```

```{r}
mtcars %>% 
 kable( format = 'latex',  longtable = T, booktabs = T) %>% 
  kable_styling(latex_options = "condensed", font_size = 8) %>% 
  landscape(margin = c('1cm')) 
```
Run Code Online (Sandbox Code Playgroud)

我认为 rmarkdown::render('filename.Rmd')会起作用,但是我收到一个错误,而在 RStudio 中使用 knit 按钮时它起作用了。因此,我想知道按下 knit 按钮和使用render.

当我使用时,render()我收到此错误消息:

/Applications/RStudio.app/Contents/MacOS/pandoc/pandoc +RTS -K512m -RTS test.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output test.tex …

r knitr r-markdown kable

2
推荐指数
1
解决办法
1662
查看次数

如何删除/隐藏kable中的列名?

我正在使用以下代码绘制表,但发现没有多余的列名V1和V2作为列名出现。

statdat<-read.table("stat.txt",sep="\t",header=FALSE)
kable(statdat) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如何避免打印列名?

r-markdown kable

2
推荐指数
1
解决办法
2464
查看次数

kableExtra 停止评估表中的乳胶代码

我有一个 R Markdown 表格,\rule{1cm}{0.4pt}其中一列的每个单元格中都包含此 LaTeX 命令。kable如果我不包含该包,表格格式就很好kableExtra。如果我确实包含kabelExtra,LaTeX 命令,则不再解释。不使用和使用 kableExtra 的结果如下所示。没有进行其他更改。上面的例子是我想要的结果。

我检查了 .tex 输出。kableExtra似乎将 LaTeX 命令格式化为文字文本:\textbackslash{}rule\{1cm\}\{0.4pt\}而不是上面显示的命令。

我想使用 kableExtra 来实现其他功能,例如设置列宽,但我需要它来解释 LaTeX 命令。我在手册或小插图中没有找到任何似乎涉及 LateX 命令的内容。我错过了什么吗?

编辑

我尝试在使用时添加format = "latex"到呼叫中,但仍然出现不期望的结果。kablekableExtra

微量元素

---
title: "Without kableExtra"
output: 
  pdf_document: 
    keep_tex: TRUE
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r}
library(tibble)
library(knitr)
#library(kableExtra)

a = seq(1:3)
b = seq(4:6)
tab <- as.tibble(cbind(a,b))
tab <- add_column(tab, c = "\\rule{1cm}{0.4pt}")
```

```{r}
kable(tab, …
Run Code Online (Sandbox Code Playgroud)

r r-markdown kableextra kable

2
推荐指数
1
解决办法
773
查看次数

使用 kable 在表格下方添加另一个标题

在 R markdown 中,编织为 PDF,kable 允许包含“标题”(实际上是表格标题),但我想在表格下方添加另一个较小字体的标题。有什么想法如何做到这一点吗?(我不想只在主降价文档下面添加文本,因为它是数字而不是表格浮动的一部分)。

这是一些代码示例:

library(knitr)
name <- c('Na~2~O', 'Ca', 'Ba')
value <- c(2,3,5)
data <- data.frame(name, value)
rownames(data) <- data[,1]
data$name <- NULL
kable(data, format = "pandoc", caption = 'some title')
Run Code Online (Sandbox Code Playgroud)

markdown r pandoc r-markdown kable

2
推荐指数
1
解决办法
8908
查看次数

如何在 rmarkdown html_document 中对齐表格和绘图

如何将 kable 表与 rmarkdown html_document 中的 ggplot2 图对齐?

Foo.Rmd

---
title: "Foo"
output: html_document
---

```{r setup, include=FALSE}
library(ggplot2)
library(knitr)
library(kableExtra)
```

# Table next to plot
```{r echo = FALSE}
kable(head(iris)) %>%
  kable_styling(bootstrap_options = "striped", full_width = F)

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point()
```
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我尝试按照此处的解决方案进行操作但无济于事。

r ggplot2 r-markdown kable

2
推荐指数
1
解决办法
3019
查看次数

在 RMarkdown 的 PDF 输出中旋转多页表格

我想在我的 PDF 输出中旋转一个宽表。我遇到了这个奇妙的问题,但我的桌子更长了。

当我复制/粘贴该问题中显示的示例之一时,使用 RMarkdown 效果很好。

library(kableExtra)

kable(iris[1:5,],
      format = "latex", booktabs = TRUE) %>%
  kableExtra::landscape()
Run Code Online (Sandbox Code Playgroud)

但是,如果我们删除子集,我们会看到表格超出了页面的尺寸。

library(kableExtra)

kable(iris,
      format = "latex", booktabs = TRUE) %>%
  kableExtra::landscape()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

所以我的问题很简单:我们如何通过将表格分成几部分来创建所需数量的 PDF 页面?

latex r knitr r-markdown kable

2
推荐指数
1
解决办法
506
查看次数

rmarkdown:Word 文档中的 kable、xtable 或 tab_df 表

---
output:
  word_document: default
---

```{r setup, include=FALSE}
data("mtcars")
library(tidyverse)
library(xtable)
library(sjPlot)
library(kableExtra)
```

```{r, results='asis'}
df <- mtcars %>% 
group_by(cyl) %>% 
summarise(disp = mean(disp), 
        wt = mean(wt), 
        n = n()
)
kable(df)

# tab_df(df)
# xtable(df) 
```    
Run Code Online (Sandbox Code Playgroud)

我已经尝试过xtabletab_df、 和kable生成带有表格的Word文档。当“编织到 HTML 文档”时,所有表格看起来都很好。当“knit to Word”时,xtable 不显示表格tab_df,而是kable生成一个只有一列的表格:

kable(df) 
cyl
disp
wt
n
4
105.1364
2.285727
Run Code Online (Sandbox Code Playgroud)

r ms-word r-markdown kable

2
推荐指数
1
解决办法
4186
查看次数

KableExtra 在具有长非空白字符串的列中添加换行符

我有一个长字符串,我想要在表格中,例如 100x 字母 A (AAA...)。如果这些字符串不适合表,我希望 kable 将该字符串拆分为多行,而不是使这些字符串溢出,如此处 所示

我注意到 kable 实际上能够做到这一点,前提是-您的字符串中有换行符或 's,例如参见此处

但是,我希望 kable 对选定的字符或任何字符进行这种分割,因此输出结果将是this,但我不知道如何实现这一点。我查看了 SO 和 kableextra 文档,但没有运气。有什么建议么?

下面是一个可以玩的块。

---
title: 'rasstasrt'
sansfont: Calibri Light
output: pdf_document
---

```{r setup, include=FALSE}
library(kableExtra);
library(dplyr)
knitr::opts_chunk$set(cache = F)
```


```{r}
dt <-tibble(Items =c("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaAAa", "Item 2", "Item 3"),
            Tmd5ext_1 =c("Lorem ipsum  "),
            Text_2 =c("Duis pos "))

kableExtra::kable(dt, "latex", booktabs = F, col.names =c("Item", "Short Title", "Veryong Title"))  %>% column_spec(1:3, width = "5cm", )
```
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown kableextra kable

2
推荐指数
1
解决办法
2481
查看次数