Re: [Rd] Sweave resource leak: leftover temp files (PR#7999)
This is great. Thank you for your help, but let me make sure I fully understand. Here is the looping file I use to subset the data frame, create a tex file, and Sweave it. This results in N number of tex files where N is equal to the number of rows in the data frame. list <- unique(wide$stuid) master = "master.tex" for (i in list){ tmp1 <- subset(wide, stuid==i) tmp2 <- paste(i, "tex", sep=".") Sweave("fam_template.Rnw", output=tmp2) file.append("fam_master.tex", tmp2) } If I follow correctly, I would need to place these commands inside the loop as follows: list <- unique(wide$stuid) master = "master.tex" for (i in list){ tmp1 <- subset(wide, stuid==i) tmp2 <- paste(i, "tex", sep=".") keep <- list.files(tempdir(), full=TRUE) # keep previous temp files Sweave("fam_template.Rnw", output=tmp2) file.append("fam_master.tex", tmp2) temps <- list.files(tempdir(), full=TRUE) unlink(temps[!(temps %in% keep)]) # delete the newly created ones } Thank you for taking the time to look at this. Harold -Original Message- From: Duncan Murdoch [mailto:[EMAIL PROTECTED] Sent: Friday, July 08, 2005 9:28 AM To: Duncan Murdoch Cc: Doran, Harold; [EMAIL PROTECTED]; Uwe Ligges; Sean O'Riordain Subject: Sweave resource leak: leftover temp files Harold, I've taken a closer look at your example and I'd call this an Sweave bug. It creates tempfiles each time you run it, and doesn't delete them at the end. For example: > list.files(tempdir()) character(0) > testfile <- system.file("Sweave", "Sweave-test-1.Rnw", package = "utils") > Sweave(testfile, out="junk.tex") Writing to file junk.tex Processing code chunks ... 1 : print term verbatim 2 : term hide 3 : echo print term verbatim 4 : term verbatim 5 : echo term verbatim 6 : echo term verbatim eps pdf 7 : echo term verbatim eps pdf You can now run LaTeX on 'junk.tex' > list.files(tempdir()) [1] "Rf10523" "Rf13872" "Rf17129" "Rf2055" "Rf2203" "Rf2403" "Rf27095" [8] "Rf2892" "Rf31415" "Rf5290" "Rf6251" "Rf6482" "Rf7055" "Rf724" > Sweave(testfile, out="C:/temp/junk.tex") Writing to file C:/temp/junk.tex Processing code chunks ... 1 : print term verbatim 2 : term hide 3 : echo print term verbatim 4 : term verbatim 5 : echo term verbatim 6 : echo term verbatim eps pdf 7 : echo term verbatim eps pdf You can now run LaTeX on 'C:/temp/junk.tex' > list.files(tempdir()) [1] "Rf10523" "Rf12679" "Rf1311" "Rf13484" "Rf13872" "Rf17129" "Rf17288" [8] "Rf2055" "Rf21774" "Rf2203" "Rf23417" "Rf2403" "Rf27095" "Rf2892" [15] "Rf29444" "Rf31128" "Rf31415" "Rf32520" "Rf3338" "Rf5290" "Rf5551" [22] "Rf6251" "Rf6482" "Rf7055" "Rf724" "Rf7543" "Rf758" "Rf7673" > unlink(list.files(tempdir(),full=T)) > list.files(tempdir()) character(0) Harold: a workaround for this would be to wrap your Sweave call in something like this: keep <- list.files(tempdir(), full=TRUE) # keep previous temp files ... Call Sweave here ... temps <- list.files(tempdir(), full=TRUE) unlink(temps[!(temps %in% keep)]) # delete the newly created ones __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] Bug with Cor(..., method='spearman") and by() (PR#9921)
I posted this on R help, and a few others responded indicating they too were able to replicate the error as a function of missing data. I believe this should not be the case and hence and reporting it here. ### Code provided on R-Help by Ivar Herfindal # Simulate data testdata <- cbind.data.frame(gr=3Drep(letters[1:4], each=3D5), = aa=3Drnorm(20), bb=3Drnorm(20)) # Introduce some missingness testdata[1:5, 2] <- NA # This works fine by(testdata[,c("aa", "bb")], testdata$gr, cor, use=3D"complete", method=3D"pearson") # This induces error by(testdata[,c("aa", "bb")], testdata$gr, cor, use=3D"complete", method=3D"spearman") Error in FUN(data[x, ], ...) : 'x' is empty ## Alternatively, we can try this # This works fine by(testdata[,c('aa', 'bb')], testdata$gr, cor, use=3D'complete', method=3D'pearson') ## This induces the same error by(testdata[,c('aa', 'bb')], testdata$gr, cor, use=3D'complete', method=3D'spearman') Error in FUN(data[x, ], ...) : 'x' is empty I am using Windows XP with session info below Harold Doran > sessionInfo() R version 2.5.0 (2007-04-23)=20 i386-pc-mingw32=20 locale: LC_COLLATE=3DEnglish_United States.1252;LC_CTYPE=3DEnglish_United States.1252;LC_MONETARY=3DEnglish_United States.1252;LC_NUMERIC=3DC;LC_TIME=3DEnglish_United States.1252 attached base packages: [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" "base"=20 other attached packages: mlmRevlme4 Matrix lattice=20 "0.995-1" "0.99875-2" "0.99875-3""0.15-4"=20 __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel