[R-gui] GUI for require(package)!
jfox at mcmaster.ca
Fri Jul 16 04:24:07 CEST 2004
I'll be interested to see what you come up with. I think that my solution is
probably sufficient for the Rcmdr package (actually, I can eliminate the
Bioconductor radio button since at present I only use CRAN packages) and
should be pretty easily adapted. As usual, I'll let things percolate for a
few days to see if I can think of improvements.
Thanks for raising the issue.
> -----Original Message-----
> From: r-sig-gui-bounces at stat.math.ethz.ch
> [mailto:r-sig-gui-bounces at stat.math.ethz.ch] On Behalf Of
> James Wettenhall
> Sent: Thursday, July 15, 2004 7:24 PM
> To: John Fox
> Cc: r-sig-gui at stat.math.ethz.ch
> Subject: RE: [R-gui] GUI for require(package)!
> Hi John,
> Great work!
> Yes I agree that it's not too difficult to provide a PACKAGES
> file on a CD. On the other hand, I do still like the idea of
> having a GUI option to install a missing R package from an
> aribtrary place on your hard disk, e.g. your desktop (without
> necessarily having a PACKAGES file). I'll look at your code
> and think about this. (Maybe this is coming from a Windows
> point of view - unlike Mac, it's easy to have multiple R
> installations, e.g. C:\rw1090\ and C:\rw1091\ , so you could
> download an R package and install it within your R 1.9.0
> installation but not your R 1.9.1 installation, and then
> later decide that you want it in R 1.9.1)
> In my R packages, I'm not sure if .onLoad() is the right
> place to install _all_ missing R packages, because some of
> the R packages are really only 'recommended' rather than
> 'required', i.e. a complete microarray analysis can be
> performed using my GUI(s), without the 'recommended'
> packages, as long as you don't choose the 'advanced' or
> 'extra-memory-hungry' normalization options.
> So I would still like users to be able to run my GUIs without
> some of the 'recommended' packages, but there are certainly
> some packages which are critically required, so maybe they
> could be installed in .onLoad() or .First.lib() if missing.
> For the 'recommended' packages, .onLoad() should not fail if
> they are unavailable, but it could give a warning.
> Another thing which could be incorporated into this is the
> new reposTools / install.packages2() / getBioC() methods of
> installation for the case of Bioconductor packages. This may
> not be of general interest to people on this list, but
> obviously I am interested in Bioconductor. The advantage of
> the Bioconductor package-installation methods, is that they
> try to take care of dependencies automatically. I would
> assume that the "Install package(s) from Bioconductor" menu
> item in Rgui for Windows, doesn't yet use this, i.e. it
> probably uses the original install.packages() and a PACKAGES file.
> For an example of dependencies, if my limmaGUI package
> depends on limma, but I forget that limma depends on statmod,
> then if limma is missing, install.packages2() in
> Bioconductor's reposTools packages should automatically see
> that statmod is required for limma, and find it on CRAN.
> But the reposTools / install.packages2() method can be slow
> sometimes, because it searches multiple repositories for an R
> package. This may be fixed now, but in the past, I found
> that (using the default options), it often searched the wrong
> repository first, e.g. CRAN instead of Bioconductor.
> Jeff Gentry is the expert on reposTools, install.packages2(),
> and getBioC(). He also has a widgetInvoke package on
> Bioconductor which could be of interest to Gtk fans on this
> mailing list.
More information about the R-SIG-GUI