[R] How do I call a masked function in a package without a namespace?
Gabor Grothendieck
ggrothendieck at myway.com
Tue Mar 15 21:27:37 CET 2005
Dirk Koschuetzki <dkoschuetzki <at> gmx.de> writes:
:
: Hello,
:
: I work with two packages sna and graph from CRAN resp. Bioconductor. Both
: packages have a function called "degree". Therefore one of the functions
: is masked by the other and which one gets called depends on the order of
: loading. The problem is that both package do not have a namespace,
: therefore calling the masked function with "package::degree" does not
: work. See the following transcript:
:
: $ R --vanilla
:
: [[ Running on Debian Sarge ]]
:
: R : Copyright 2004, The R Foundation for Statistical Computing
: Version 2.0.1 (2004-11-15), ISBN 3-900051-07-0
: [...]
:
: > library("sna")
: > library("graph")
: Loading required package: cluster
: Loading required package: Ruuid
: Creating a new generic function for "print" in "Ruuid"
: Loading required package: Biobase
: Loading required package: tools
: Welcome to Bioconductor
: Vignettes contain introductory material. To view,
: simply type: openVignette()
: For details on reading vignettes, see
: the openVignette help page.
: > conflicts()
: [1] "last.warning" "degree" "body<-" "print" "split"
: [6] "union"
:
: > sna::degree()
: Error in loadNamespace(name) : package 'sna' does not have a name space
: > graph::degree()
: Error in loadNamespace(name) : package 'graph' does not have a name space
: > sna:::degree
: Error in loadNamespace(name) : package 'sna' does not have a name space
: > graph:::degree
: Error in loadNamespace(name) : package 'graph' does not have a name space
:
: Is there a way to call the masked function via a different way?
: And I wold like to create my own function degree which will of course
: masked both functions and should therefore be able to call both functions.
:
The following looks up the position of the graph package on the
search path and gets degree specifically from there,
invokes it with the indicates arguments.
graph.degree <- function(...)
get("degree", grep("package:graph$", search()))(...)
More information about the R-help
mailing list