[Rd] help( ., package = variable ) -> error

Romain Francois romain.francois at dbmail.com
Sun Oct 11 14:44:06 CEST 2009


Hello,

 > pack <- "utils"
 > help( write.table, package = pack )
Error in .find.package(package, lib.loc, verbose = verbose) :
   there is no package called 'pack'

Replacing this :

if(!missing(package))
         if(is.name(y <- substitute(package)))
             package <- as.character(y)


by this :

if( !missing(package) ){
		ischar <- tryCatch(is.character(package) && length(package) == 1L,
     	                   error = identity)
     	if(inherits(ischar, "error")) ischar <- FALSE
     	
     	## if this was not a length-one character vector, try for the name.
     	if(!ischar) {
     		spackage <- deparse(substitute(package))
     	    if(!is.name(substitute(package)) )
     	        stop("'package' should be a name or a length-one character 
vector")
     	    package <- spackage
     	}
     }


makes these three calls work:

 > help( write.table, package = "utils" )
 > help( write.table, package = utils )
 > help( write.table, package = pack )

... unless utils is a variable

-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/BcPw : celebrating R commit #50000
|- http://tr.im/ztCu : RGG #158:161: examples of package IDPmisc
`- http://tr.im/yw8E : New R package : sos



More information about the R-devel mailing list