Re: [Rd] Sweave resource leak: leftover temp files (PR#7999)

2005-07-08 Thread HDoran
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)

2007-09-21 Thread HDoran
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