我正在使用R studio Version 0.99.485。我必须根据一个输入向量做很多报告,所以我决定在R Markdown(R studio)中编写for循环。我只提供部分代码:
```{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')
}
```
因此,对于某些向量中的每个i,我都在编写具有相同结构的报告。
如果我执行这样的代码,它将在一个文档中返回所有报告,但我想拥有与报告一样多的html文档。
我需要在r chunk内部的for循环结束时添加什么,以便在每次循环结束时将报告保存为文档?
答案 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脚本的目录中。