2013-10-08 27 views
6

Tôi muốn tạo N trang trình bày để báo cáo số liệu thống kê mô tả cho N tập hợp con của dữ liệu lớn (big) sử dụng gói slidify. Trong một cuộc thảo luận trước đó, Create parametric R markdown documentation? sự kết hợp của brewknitr được khuyến khích để đạt được điều này.R Tạo trang chiếu trong bản trình bày trượt trong vòng lặp

Tôi tự hỏi liệu slidify có cách giải quyết riêng của mình cho một tác vụ như vậy không? Tôi đoán lặp thông qua dữ liệu để cư slide thậm chí còn logic hơn so với văn bản đơn giản hơn ...

Một ví dụ tối thiểu (từ câu hỏi trên, tôi cần slide thay vì đoạn)

```{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ém 'cat (" --- \ n ")' trong vòng lặp của bạn để tạo trang trình bày mới? –

+0

Tôi sẽ ném 'cat (" \ n \ n --- \ n "), vì dấu phân tách mong đợi một dòng mới trống trước' --- 'sao cho nó không bị nhầm lẫn với các tiêu đề. – Ramnath

+2

Trên ghi chú đó, bạn cũng có thể sử dụng kết hợp hoặc 'brew' +' slidify' hoặc 'whisker' +' slidify' để đạt được điều tương tự. Tôi sẽ nấu một ví dụ tối thiểu sau ngày hôm nay. – Ramnath

Trả lời

8

Đối với những người quan tâm, đây là những gì tôi có (cho vòng lặp + hai cột bố trí (như 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) 
} 
``` 
Các vấn đề liên quan