Ich arbeite an der Erstellung eines dynamischen Rmarkdown-Dokuments. Das Endergebnis sollte eine Registerkarte für jede "Klassifizierung" in den Daten erstellen. Jede Registerkarte sollte eine Datentabelle aus dem DT-Paket mit den darauf gedruckten Daten enthalten. Unten ist der Code, den ich verwendet haben:Warum wird die Datentabelle nicht gedruckt, wenn der rmarkdown-Befehl wiederholt wird?
---
output: html_document
---
# Setup{.tabset}
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(DT)
```
```{r data.setup}
set.seed = 1242
rows = 64
data.1 = runif(rows, 25, 75)
data.2 = runif(rows, .01, 1)
data.3 = runif(rows, 1, 10)
classification = c("A", "B", "C", "D")
df = data.frame(cbind(data.1 = data.1, data.2 = data.2, data.3 = data.3, classification = classification))
df$data.1 = as.numeric(df$data.1)
df$data.2 = as.numeric(df$data.2)
df$data.3 = as.numeric(df$data.3)
```
```{r results= 'asis'}
for(j in levels(df$classification)){
df.j = df[df$classification == j, ]
cat(paste("\n\n## Classification: ", j, "##\n"))
w = datatable(df.j)
#datatable(df.j)
print(w)
}
```
Hinweis Ich habe die Datentabelle Funktion gerade Anrufe auf Kommentar, um rmarkdown diejenigen, die nicht druckten. Die Ergebnisse des Aufrufs, so wie sie geschrieben wurden, erzeugen ein HTML-Dokument mit den richtigen Tabs, aber keine Databases in ihnen. Darüber hinaus werden die Databases tatsächlich in meiner RStudio-Sitzung mit der richtigen Teilmenge angezeigt. Als Test habe ich versucht, das Ziel mit der Kable-Funktion von Knitr zu erreichen, und die Tabellen wurden in den entsprechenden Tabs gedruckt, leider verfügt kable nicht über alle erforderlichen Funktionen.
+1 Ich habe weit und breit für eine einfache Lösung suchen und das war es. Beachten Sie, dass Sie im dritten Chunk 'datatable (df [1,])' 'eingeben können und es wird trotzdem funktionieren! Ich frage mich, ob @yihui weiß, warum das notwendig ist – bouncyball