Skip to content

do.call and double-colon access

2 messages · Vincent Carey, Brian Ripley

#
Using R 2.0.0 of July 20 2004

train, test, and cl as defined in example(knn),

we have
[1] ".GlobalEnv"       "package:methods"  "package:stats"    "package:graphics"
[5] "package:utils"    "Autoloads"        "package:base"
Error: couldn't find function "knn"
[1] s s s s s s s s s s s s s s s s s s s s s s s s s c c v c c c c c v c c c c
[39] c c c c c c c c c c c c v c c v v v v v v v v v v c v v v v v v v v v v v
Levels: c s v
Error in do.call("class::knn", list(train = train, test = test, cl = cl,  :
        couldn't find function "class::knn"
[1] s s s s s s s s s s s s s s s s s s s s s s s s s c c v c c c c c v c c c c
[39] c c c c c c c c c c c c v c c v v v v v c v v v v c v v v v v v v v v v v
Levels: c s v


should do.call("class::knn", ...) succeed?
#
On Mon, 26 Jul 2004, Vincent Carey 525-2265 wrote:

            
No.  From the help page for do.call

Arguments:

    what: a character string naming the function to be called.

class::knn is a function call that get()s a function (try get("::") -- it
is really "::"("get", "class")) and not the name of a function.