Tôi muốn tạo một vòng lặp, cho phép tôi tự động lưu các báo cáo PDF, được tạo từ một tệp .Rmd. Ví dụ: nếu biến "ID" có 10 hàng, tôi muốn R tự động lưu 10 báo cáo vào một thư mục cụ thể. Các báo cáo này sẽ thay đổi dựa trên ID được chọn.R Knitr PDF: Có khả năng tự động lưu các báo cáo PDF (được tạo từ .Rmd) thông qua một vòng lặp không?
Bài đăng trước (Using loops with knitr to produce multiple pdf reports... need a little help to get me over the hump) đã xử lý việc tạo nhiều báo cáo pdf được tạo từ các tệp .Rnw. Tôi cố gắng để áp dụng phương pháp này như sau:
#Data
```{r, include=FALSE}
set.seed(500)
Score <- rnorm(40, 100, 15)
Criteria1<-rnorm(40, 10, 5)
Criteria2<-rnorm(40, 20, 5)
ID <- sample(1:1000,8,replace=T)
df <- data.frame(ID,Score,Criteria1,Criteria2)
#instead of manually choosing the ID:
subgroup<- subset(df, ID==1)
# I would like to subset the Data through a loop. My approach was like like this:
for (id in unique(df$ID)){
subgroup<- df[df$ID == id,]}
```
```{r, echo=FALSE}
#Report Analysis
summary(subgroup)
```
#Here will be some text about the summary.
# At the end the goal is to produce automatic pdf reports with the ID name as a filename:
library("rmarkdown")
render("Automated_Report.rmd",output_file = paste('report.', id, '.pdf', sep=''))
Bạn cần một vòng lặp, không cần hai. Cách mã của bạn được thiết lập, bạn lặp qua tất cả các nhóm con của bạn, và sau đó khi bạn hoàn thành việc tạo một nhóm các tệp PDF. Bạn cần phải kết hợp chúng: chọn một nhóm con và tạo một báo cáo dựa trên tất cả trong cùng một vòng lặp. Nếu bạn cần thêm trợ giúp, bạn sẽ phải cụ thể hơn nhiều so với "có vẻ không hoạt động" và có thể tạo một ví dụ có thể tái sản xuất. – Gregor
Bạn cũng có thể xem gói 'knit_expand' hoặc' brew'. – Gregor
Tôi cũng đã thử nó chỉ với một vòng lặp cho việc subsetting. Nhưng điều đó cũng không hiệu quả. Tôi đã cung cấp một ví dụ tái tạo đơn giản, chỉ dán bản tóm tắt cho mỗi ID trong một báo cáo và cũng trao đổi hàm knit2pdf() với hàm render() từ gói rmarkdown @ Gregor – user3491036