首先,我必须承认,我很新的knitr和重现性分析的概念,但我可以看到在提高我当前的工作流程(其中包括很多的复制粘贴到Word文档)它的潜力。
我经常用组(医院在本例中),以产生多个报告和每家医院内,可能会有许多不同的病房说我汇报的结果。以前我使用循环跑了我所有的情节和分析在R,然后复制/粘贴工作开始; 但是,在阅读了这篇文章(Sweave可以自动产生许多pdf吗?)之后,它给了我希望,我实际上可以跳过很多步骤,直接从R直接通过Rnw / knitr报告。
但是,尝试一下之后,我发现有些东西还没有完全解决(因为Rnw中的R环境似乎无法识别我要传递给它的循环变量?)。
## make my data
Hospital <- c(rep("A", 20), rep("B", 20))
Ward <- rep(c(rep("ICU", 10), rep("Medicine", 10)), 2)
Month <- rep(seq(1:10), 4)
Outcomes <- rnorm(40, 20, 5)
df <- data.frame(Hospital, Ward, Month, Outcomes)
## Here is my current work flow-- produce all plots, but export as png and cut/paste
for(hosp in unique(df$Hospital)){
subgroup <- df[ df$Hospital == hosp,]
for(ward in unique(subgroup$Ward)){
subgroup2 <- subgroup[subgroup$Ward == ward,]
savename <- paste(hosp, ward)
plot(subgroup2$Month, subgroup2$Outcomes, type="o", main=paste("Trend plot for", savename))
}
}
# followed by much copy/pasting
## Here is what I'm trying to go for using knitr
library(knitr)
for (hosp in unique(df$Hospital)){
knit("C:file.path\\testing_loops.Rnw", output=paste('report_', Hospital, '.tex', sep=""))
}
## With the following *Rnw file
## start *.Rnw Code
\documentclass[10pt]{article}
\usepackage[margin=1.15 in]{geometry}
<<loaddata, echo=FALSE, message=FALSE>>=
Hospital <- c(rep("A", 20), rep("B", 20))
Ward <- rep(c(rep("ICU", 10), rep("Medicine", 10)), 2)
Month <- rep(seq(1:10), 4)
Outcomes <- rnorm(40, 20, 5)
df <- data.frame(Hospital, Ward, Month, Outcomes)
subgroup <- df[ df$Hospital == hosp,]
@
\begin{document}
<<setup, echo=FALSE >>=
opts_chunk$set(fig.path = paste("test", hosp , sep=""))
@
Some infomative text about hospital \Sexpr{hosp}
想经营我的编织()的代码块后,我得到这个错误:
Error in file(con, "w") : invalid 'description' argument
当我看着在* .tex文件是要创建的目录,我可以看到从医院A中的2个PDF地块被生产(无为B),并没有医院具体* .tex文件编织成PDF。预先感谢您可以提供任何帮助!
收到一只叮咚
慕田峪9158850
尚方宝剑之说