2013-10-08 64 views
6

我想創建N張幻燈片,使用slidify包報告N個大數據子集的描述性統計信息。在之前的討論Create parametric R markdown documentation?中,建議組合brewknitr來實現這一點。R在幻燈片中生成幻燈片幻燈片

我想知道slidify對於這樣的任務是否有其自己的解決方法?我猜通過數據迭代來填充幻燈片,甚至超過了純文本的邏輯......

一個最小的例子(從上面的問題,我需要的幻燈片,而不是段)

```{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

擲'貓(「--- \ n」)'在你的循環來創建新的幻燈片? –

+0

我會拋出'cat(「\ n \ n --- \ n」),因爲分隔符在'---'之前需要一個空的換行符,所以它不會與頭部混淆。 – Ramnath

+2

在該說明中,您也可以使用組合或'brew' +'slidingify'或'whisker' +'slidingify'來實現相同。今天晚些時候我會做一個簡單的例子。 – Ramnath

回答

8

對於那些有興趣,這是我迄今爲止(對環+兩個欄佈局(如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) 
} 
```