[R] R 3.2, Mac 10.10.3 : help.search showing error

David Winsemius dwinsemius at comcast.net
Sun Jun 14 07:00:13 CEST 2015


On Jun 13, 2015, at 9:25 PM, Ramnik Bansal wrote:

> Thanks. But it seems to be an R 3.2.0 specific problem.

Exactly. That's why I needed to take the time to update my installation. I posted a message to R-devel after failing to find where the code was different in the two versions and not getting any understanding from tracing the 'help'-function. 

I do see in the R 3.1.2 version that this code:

if (!missing(pattern)) {
        if (!is.character(pattern) || (length(pattern) > 1L)) 
            stop(.wrong_args("pattern"), domain = NA)
        i <- pmatch(fields, FIELDS)
        if (anyNA(i)) 
            stop("incorrect field specification")
        else fields <- FIELDS[i]
   }

 was changed .... to this:

if (!missing(pattern)) {
       if (!is.character(pattern) || (length(pattern) > 1L)) 
           stop(.wrong_args("pattern"), domain = NA)
       i <- pmatch(fields, hsearch_db_fields)
       if (anyNA(i)) 
           stop("incorrect field specification")
       else fields <- hsearch_db_fields[i]
   }


And I see this in the NEWS file:

	• New function hsearch_db() in package utils for building and retrieving the help search database used byhelp.search(), along with functions for inspecting the concepts and keywords in the help search database.



-- 
David.
> 
> On Sun, Jun 14, 2015 at 8:42 AM, David Winsemius <dwinsemius at comcast.net> wrote:
> 
> On Jun 13, 2015, at 7:41 AM, Ramnik Bansal wrote:
> 
> > Getting following error in using help.search
> >
> >> utils::help.search("linear models")
> > Error in help(db[i, "topic"], package = db[i, "Package"], lib.loc = lib,  :
> >  'topic' should be a name, length-one character vector or reserved word
> 
> I first tried this in a Mac running the SL version for R 3.1.2 and did not get this error. I updated my Mavericks laptop to R 3.2.0 and can now reproduce this error. It does not seem to depend on having a space in the argument. It seems to be thrown by this segment of code in the `help()`-function:
> 
>    ischar <- tryCatch(is.character(topic) && length(topic) ==
>        1L, error = identity)
>    if (inherits(ischar, "error"))
>        ischar <- FALSE
>    if (!ischar) {
>        reserved <- c("TRUE", "FALSE", "NULL", "Inf", "NaN",
>            "NA", "NA_integer_", "NA_real_", "NA_complex_", "NA_character_")
>        stopic <- deparse(substitute(topic))
>        if (!is.name(substitute(topic)) && !stopic %in% reserved)
>            stop("'topic' should be a name, length-one character vector or reserved word")
> 
> If gone through the `help.search` function code and cannot find where the `help` function is actually called. This seems unlikely to be a Mac-specific problem.
> 
> >
> >
> >> example(help.search)
> >
> > hlp.sr> help.search("linear models")    # In case you forgot how to fit
> > linear
> > Error in help(db[i, "topic"], package = db[i, "Package"], lib.loc = lib,  :
> >  'topic' should be a name, length-one character vector or reserved word
> >
> >
> > How to sort this?
> >
> >       [[alternative HTML version deleted]]
> 
> David Winsemius
> Alameda, CA, USA
> 
> 

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list