2016-07-13 1 views
-1

Я использую R studio Version 0.99.485. Я должен делать много отчетов на основе одного входного вектора, поэтому я решил написать цикл for R Markdown (R studio). Я даю только часть кода:Создайте много документов

```{r forensis, results='asis', echo=FALSE} 
load(file = "E:/data/R/Forensic_reports/fdata.RData") 
for (i in 1:length(osobni_podaci$Oib)) { 
    cat(" \n### UPIT ZA OIB: ", oibreq[i], ' \n') 
    cat(' \n### STATUS OIB-A \n') 
    cat('Status: ',ifelse(oib_status$X_status[i] == 1, 'Aktivan', 'Neaktivan'), ' \n') 
    cat(' \n### OSNOVNI PODACI \n') 
    cat("Ime: ", osobni_podaci$Ime[i], ' \n') 
} 
``` 

Таким образом, для каждого я в какой-то вектор, пишу отчет с такой же структурой.

Если я выполняю такой код, он будет возвращать все отчеты в одном документе, но я хотел бы иметь как можно больше html-документов.

Что нужно добавить в конец цикла for внутри r chunk для сохранения отчета в виде документа каждый раз, когда цикл завершен?

+0

R создает «файл pdf/html, jpeg» и начинает вставлять в него все вещи, если только он не будет восстановлен или не попросит сделать новый. Как с цифрами, вы можете делать dev.off() или dev.next(). Так что я бы заподозрил, что для Markdown есть что-то подобное или просто создает файлы HTML –

+0

@Jan Sila Как я понимаю, невозможно сделать несколько html-документов из rmarkdown r chunk. Я не уверен, как встраивать dev.off() или dev.next() в код. – Mislav

+0

Я не имел в виду именно это, но что-то подобное? Я попытаюсь сделать это, когда я получу на своем компьютере –

ответ

0

Я нашел ответ здесь: https://github.com/petrelharp/r-markdown-tutorial

С .rmd, как это:

--- 
title: "Visualization for `r input.file`" 
date: "`r date()`" 
--- 

```{r setup, echo=FALSE} 
if (!file.exists(input.file)) { stop("Can't find file.") } 
xy <- read.table(input.file) 
``` 

The file `r input.file` 
has `r nrow(xy)` observations: 

```{r plotit} 
plot(height ~ age, col=type, data=xy) 
legend("topleft", pch=1, legend=levels(xy$type), col=1:nlevels(xy$type)) 
``` 

R сценарий, как это:

library(knitr) 
owd <- setwd("examples/thedata") # determines where output will go 
opts_knit$set(root.dir=".") # determines where code is evaluated 
file.names <- list.files(".",".*tsv") 
for (input.file in file.names) { 
    output.file <- gsub(".tsv$",".viz.html",input.file) 
    knit2html("../simple-template.Rmd", output=output.file, quiet=TRUE) 
} 

и куча .tsv ввода файлы, хранящиеся в каталоге, где оценивается сценарий R.