如果单元格的值大于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输出表中为单元格着色?
我正在尝试为我的 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;"> <div class="button is-success"> setosa </div> </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) 如何使用函数调用将以下内容编织到 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 …
我正在使用以下代码绘制表,但发现没有多余的列名V1和V2作为列名出现。
statdat<-read.table("stat.txt",sep="\t",header=FALSE)
kable(statdat)
Run Code Online (Sandbox Code Playgroud)
如何避免打印列名?
我有一个 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 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) 如何将 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)
我想在我的 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 页面?
---
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)
我已经尝试过xtable、tab_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) 我有一个长字符串,我想要在表格中,例如 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)