Wenn Sie PDF rendern, können Sie (oder jemand andere Funktion) haben Sie Ihre Tabelle mit LaTeX zu formatieren. Während es viele hilfreiche Pakete und Funktionen gibt, die die ganze Arbeit für Sie erledigen werden (knitr::kable
, xtable
, stargazer
), müssen Sie LaTeX möglicherweise zumindest teilweise selbst bearbeiten, wenn Sie eine feinkörnige Steuerung benötigen.
Eine relativ schmerzfreie Option ist Hmisc::latex
, die die Tabelle aus dem data.frame erstellt und einen Parameter (unter vielen) cellTexCmds
hat, der das Übergeben von Styling für einzelne Zellen über eine Matrix mit ähnlichen Abmessungen wie data.frame ermöglicht. Der file
Parameter zu ''
so speichert es keine Datei und where = '!htbp'
, so dass die Tabelle an der richtigen Stelle im Dokument angezeigt wird. Um die Zellenhintergrundfarbe einzustellen, benötigen Sie die LaTeX-Pakete xcolor
oder colortbl
, die in das YAML Frontmatter geladen werden können.
Um den LaTeX-Kommentar zu entfernen, erfassen Sie die Ausgabe, Teilmenge und Druck oder verwenden Sie einfach .RNW anstelle von .RMD.
---
title: "Conditional Formatting"
header-includes:
- \usepackage[table]{xcolor}
output:
pdf_document: default
---
```{r}
df <- data.frame(category = c("A","B","C"),
groupA = c(.2,.3,.5),
groupB= c(.6,.7,.9))
df.format = matrix('', nrow = nrow(df), ncol = ncol(df))
df.format[, -1] <- paste0('cellcolor{',
sapply(df[-1], function(x){
cut(x, breaks = c(0, seq(.2, .8, by = .1), 1),
labels = c('green', 'red', 'blue', 'orange',
'yellow', 'black', 'brown', 'white'))}),
'}')
df.format
```
```{r table, results='asis'}
cat(capture.output(
Hmisc::latex(df, file = '', cellTexCmds = df.format, where = "!htbp")
)[-1])
```
zu HTML oder PDF zu machen? Wenn der erste, überprüfen Sie [formatiert] (https://renkun.me/formattable/). – alistaire
Ich kann formatable nicht benutzen, weil es PDF ist – user3022875