Re: [R] Clash between alr3 and AlgDesign. (Was: Re: Second & subsequent calls to function fails. Please help debug.)

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Sun, 30 Mar 2008 13:36:15 -0400

On 30/03/2008 10:06 AM, Michael Kubovy wrote:
> I've been trying to dynamically detach and attach things in my Sweave,
> in order to circumvent the problem.
>
> Here is my first attempt:
> pkg <- 'package:AlgDesign'
> p <- is.na(match(pkg, search()))
> ifelse(p == FALSE, detach(pkg), NA)

You can't use detach this way. It is fine to say detach("package:AlgDesign") or detach(AlgDesign), but the way detach is written, you're attempting to detach something named "pkg".

This rewrite of your code is untested, but I think it should work:

pkg <- 'package:AlgDesign'
p <- match(pkg, search())
if (!is.na(p)) detach(pos=p)
require(alr3)

I've also changed your ifelse() to if (), and not just because I don't need an else clause: ifelse() is designed to do computations on vectors, if() is designed for flow control. I think we want flow control here.

Duncan Murdoch

> require(alr3)
>
> My first two runs show that I've done something wrong:
>
> > Sweave('20080331.Rnw')
> Writing to file 20080331.tex
> Processing code chunks ...
> 1 : term hide (label=setup)
> 2 : echo term verbatim (label=oatvar)
> 3 : echo term verbatim (label=oatvar1)
> 4 : echo term verbatim (label=oat2wt)
> 5 : echo term verbatim (label=oat2wt)
> 6 : echo term verbatim (label=lm)
> 7 : echo term verbatim (label=diag)
> 8 : echo term verbatim (label=tukey)
> 9 : echo term verbatim (label=nonad)
> 10 : echo term verbatim (label=efficiency)
> 11 : echo term verbatim (label=wear)
> 12 : echo term verbatim (label=wearX)
> 13 : echo term verbatim (label=gyd)
> Loading required package: crossdes
> Loading required package: AlgDesign
> 14 : echo term verbatim (label=2wt)
> 15 : echo term verbatim (label=ablm)
> 16 : echo term verbatim (label=abaov)
> 17 : echo term verbatim (label=abTukey)
> 18 : echo term verbatim (label=effAb)
> 19 : echo term verbatim (label=rabbit)
> 20 : echo term verbatim (label=rabbit2)
> 21 : echo term verbatim (label=rabbit2wt)
>
> You can now run LaTeX on '20080331.tex'
> There were 42 warnings (use warnings() to see them)
> > Sweave('20080331.Rnw')
> Writing to file 20080331.tex
> Processing code chunks ...
> 1 : term hide (label=setup)
> 2 : echo term verbatim (label=oatvar)
> 3 : echo term verbatim (label=oatvar1)
> 4 : echo term verbatim (label=oat2wt)
> 5 : echo term verbatim (label=oat2wt)
> 6 : echo term verbatim (label=lm)
> 7 : echo term verbatim (label=diag)
> 8 : echo term verbatim (label=tukey)
>
> Error: chunk 8 (label=tukey)
> Error in detach(pkg) : invalid name
> > pkg
> [1] "package:AlgDesign"
>
> (1) I should learn how to fix the above code.
>
> (2) In general, in preparing scripts, perhaps one should just ditch
> all the loaded packages at the beginning of each run, so as to insure
> that users won't get bitten by packages I had loaded but didn't do so
> explicitly in the Sweave script, *and* it would solve the current
> problem as well. Is there a straightforward way to do that?
>
>



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. Received on Sun 30 Mar 2008 - 18:14:57 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 30 Mar 2008 - 18:30:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive