You could also use a new environment for each chapter e1 <- new.env() with(e1, A <- c(1,2,3)) # or, if you prefer, e1$A <- c(1,2,3)
However, you may want to also reload packages at the start of each chapter (I think this makes it more reader-friendly), so perhaps you should restart R for each chapter. Bill Dunlap TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Rainer Schuermann > Sent: Saturday, January 25, 2014 9:39 AM > To: r-help@r-project.org > Subject: Re: [R] keep track of variables created in each chapter of a knitr > book > > You could initialize one list per chapter, > > > x1 <- list( "Chapter One" ) > > and then crate your variables as list members > > > x1$A <- c( 1, 2, 3 ) > > x1$B <- "bla" > > x1$tv.data <- data.frame( m = sample( LETTERS, 5 ), > n = round( runif( 5 ), 2 ) ) > > > x1 > [[1]] > [1] "Chapter One" > > $A > [1] 1 2 3 > > $B > [1] "bla" > > $tv.data > n m > 1 T 0.92 > 2 G 0.77 > 3 B 0.96 > 4 W 0.67 > 5 S 0.16 > > which you can keep track of easily at any time. You could save each list per > chapter, if > you wanted to. And you can remove it as easily with a simple > > > rm (x1 ) > > A bit more typing, but much cleaner, I think. > > Rgds, > Rainer > > > > > > On Friday 24 January 2014 09:14:39 Michael Friendly wrote: > > In a book project using knitr, I'm creating a large number of variable > > and objects in chunks within > > chapters. I'd like to find a way of keeping track of all of those for > > each chapter, and clean up > > at the end of each chapter, without having to manually list their names > > as shown below. > > > > The book.Rnw file uses a collection of child documents: > > > > <<ch1, child='ch01.Rnw'>>= > > @ > > > > <<ch2, child='ch02.Rnw'>>= > > @ > > > > <<ch3, child='ch03.Rnw'>>= > > @ > > ... > > > > A typical chapter file, ch02.Rnw begins with a setup chunk and ends with > > a cleanup chunk: > > > > <<setup2, echo=FALSE>>= > > source("Rprofile.R") > > knitrSet("ch02") > > require(vcdExtra, quietly = TRUE, warn.conflicts = FALSE) > > @ > > > > .... content ... > > > > <<cleanup2,results='hide'>>= > > remove(list=objects(pattern="array|mat|my|\\.tab|\\.df")) > > remove(list=c("A", "B", "age", "count", "ds", "n", "passed", "sex", > > "tab", "tv.data", "TV2", "TV")) > > ls() > > @ > > > > > > ______________________________________________ > R-help@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. ______________________________________________ R-help@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.