Try the following, which I haven't tested much and needs more error checking (e.g., to see that the function is not already generic and that its argument list is compatible with (x,...)). I put in the print statements to show what the calls to substitute() do.
toGeneric <- function (funcName) { stopifnot(is.character(funcName)) funcItself <- get(funcName) stopifnot(is.function(funcItself)) envir <- environment(funcItself) tmp <- substitute(funcSymbol <- function(x, ...) UseMethod(funcName), list(funcSymbol = as.symbol(funcName), funcName = funcName)) print(tmp) eval(tmp, envir = envir) tmp <- substitute(defaultSymbol <- funcItself, list(defaultSymbol = as.symbol(paste(sep = ".", funcName, "default")), funcItself = funcItself)) print(tmp) eval(tmp, envir = envir) } E.g., > wsx <- function(x, base=2)log(x, base=base) > toGeneric("wsx") wsx <- function(x, ...) UseMethod("wsx") wsx.default <- function (x, base = 2) log(x, base = base) > wsx function (x, ...) UseMethod("wsx") > wsx.default function (x, base = 2) log(x, base = base) Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of rballen > Sent: Wednesday, December 22, 2010 2:42 PM > To: r-help@r-project.org > Subject: [R] forcing evaluation of a char string argument > > > I'm trying to make a function to turn a regular function into > an S3 generic > one. I want myMethod to be: > > function(x,...) UseMethod("myMethod") > > But I keep getting: > > function(x,...) UseMethod(func) > > Here's the function: > > toGeneric<-function(func) { > env<-environment(get(func)) > > # default method of new generic = the original function > assign(paste(func,".default",sep=""),get(func),pos=env) > > assign(func,function(x,...) UseMethod(func),pos=env) > } > > toGeneric("myMethod") > > I messed around with force, substitute, and deparse, but I > can't get any of > those to help. > > Thanks. > -- > View this message in context: > http://r.789695.n4.nabble.com/forcing-evaluation-of-a-char-str ing-argument-tp3161365p3161365.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.