Jan-Henrik Pötter
2010-Jan-16 20:35 UTC
[R] Sweave - How to use local objects in code chunks
Hello, I wrote a function create_report that calls the function Sweave. create_report shall be used to create a pdf-report about an lm-Object which is passed as an argument to create_report. I try to use an object sel_model, that is created within the function environment of create_report and later on used within the first code chunk of the file report_template.rnw. When I use following code I get an error message that the object sel_model could not been found. How can I achieve to use objects within code-chunks that are not globally available, but only within my function call of create_report? Is it only possible to use globally available objects within a code chunk? create_report<-function(model_lst){ #define parameters sel_model<-model_lst Sweave(''report_template.rnw'') tools::texi2dvi("report_template.tex", pdf=TRUE) } create_report(p3) this is the file report_template.rnw \documentclass[a4paper]{article} \begin{document} <<echo=FALSE>> summary(sel_model) @ \begin{center} <<fig=TRUE,echo=FALSE>> plot_fx(sel_model) @ \end{center} \end{document} [[alternative HTML version deleted]]
I don't think it works that way. The .Rnw file should be self-contained. Put all the R code in the .Rnw file (or keep it in a separate file and source() it into the .Rnw file). -Ista On Sat, Jan 16, 2010 at 3:35 PM, Jan-Henrik P?tter <henrik.poetter at gmx.de> wrote:> Hello, > > I wrote a function create_report that calls the function Sweave. > create_report shall be used to create a pdf-report about an lm-Object which > is passed as an argument to create_report. > > I try to use an object sel_model, that is created within the function > environment of create_report and later on used within the first code chunk > of the file report_template.rnw. > > When I use following code I get an error message that the object sel_model > could not been found. How can I achieve to use objects within code-chunks > that are not globally available, but only within my function call of > create_report? Is it only possible to use globally available objects within > a code chunk? > > > > create_report<-function(model_lst){ > > #define parameters > > sel_model<-model_lst > > Sweave('report_template.rnw') > > tools::texi2dvi("report_template.tex", pdf=TRUE) > > } > > > > create_report(p3) > > > > > > this is the file report_template.rnw > > > > \documentclass[a4paper]{article} > > \begin{document} > > > > <<echo=FALSE>>> > summary(sel_model) > > @ > > \begin{center} > > <<fig=TRUE,echo=FALSE>>> > plot_fx(sel_model) > > @ > > \end{center} > > > > \end{document} > > > > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org