2013-10-08 8 views
6

Ich möchte N Folien erstellen, um deskriptive Statistiken für N Untermengen von (großen) Daten mit slidify Paket zu melden. In einer früheren Diskussion wurde Create parametric R markdown documentation? die Kombination von brew und knitr empfohlen, dies zu erreichen.R Generieren Sie Folien in gleitfähig Präsentation in einer Schleife

Ich frage mich, ob slidify seine eigene Workaround für eine solche Aufgabe hat? Ich denke, durch die Daten Iterieren Dias zu füllen ist noch logischer als für Klartext ...

Ein minimales Beispiel (von der Frage über, ich brauche Dias statt Paragraphen)

```{r loopResults, echo=FALSE, results='asis'} 
results = list(result1 = data.frame(x=rnorm(3), y=rnorm(3)), result2=data.frame(x=rnorm(3), y=rnorm(3))) 

for(res in names(results)) { 
    cat(paste("<h3>Results for: ", res, "</h3>>")) 

    plot(results[[res]]$x, results[[res]]$y) 
} 
+0

Wurf 'cat ("--- \ n")' in der Schleife erstellen neue Folien haben? –

+0

Ich würde 'cat (" \ n \ n --- \ n ") werfen, da das Trennzeichen eine leere Zeilenumbruch vor dem' --- 'erwartet, so dass es nicht mit Kopfzeilen verwechselt wird. – Ramnath

+2

In diesem Sinne können Sie auch eine Kombination aus 'brew' +' slifify' oder 'whisker' +' slipfy' verwenden, um dasselbe zu erreichen. Ich werde später ein minimales Beispiel kochen. – Ramnath

Antwort

8

Für Interessenten, das ist, was ich mit Abstand (for-Schleife + zweispaltigen Layout (als here)))

--- 
title: Loop test 
widgets: [bootstrap, quiz] 
--- 
## Simplest Example## 

```{r echo = F, fig.width = 12, fig.height = 7, results='asis'} 
library(data.table) 
data <- as.data.table(list(days = 1:100, revenue = runif(10, 1, 100), profit = runif(10, 1, 10), department = factor(sample(letters[1:3])))) 
for(j in levels(data$department)) { 
dataj <- data[data$department == j,]  
cat("\n\n--- &twocol\n") 
cat(paste("\n\n## Department: ", j, "##\n") ) 
cat("\n*** left\n") 
cat(paste("\nMean profit = ", round(mean(dataj$profit)), "\n")) 
cat(paste("\nMean revenue = ", round(min(dataj$revenue))), "\n") 

cat("\n*** right\n\n") 
z<-ggplot(data = dataj) + 
geom_density(aes(x = profit), alpha = 0.3) + 
geom_density(aes(x = revenue), alpha = 0.3) 
print(z) 
} 
``` 
Verwandte Themen