From romain.francois at dbmail.com  Sun Oct 11 14:44:06 2009
From: romain.francois at dbmail.com (Romain Francois)
Date: Sun, 11 Oct 2009 14:44:06 +0200
Subject: [Rd] help( ., package = variable ) -> error
Message-ID: <4AD1D316.9090605@dbmail.com>

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



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