Ahhh. Thanks Duncan. -- Bert
Bert Gunter Genentech Nonclinical Biostatistics (650) 467-7374 "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." H. Gilbert Welch On Fri, May 9, 2014 at 2:41 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 09/05/2014, 2:41 AM, Bert Gunter wrote: >> >> Spencer: >> >> Hmmm.... >> Well, I don't get what's going on here -- as.character.default is >> internal -- but could you method-ize a simple synonym: > > > See ?InternalMethods: > > "For efficiency, internal dispatch only occurs on objects, that is those for > which is.object returns true." > > Duncan Murdoch > > >> >> asChar<- function(e,...)UseMethod("asChar") >> asChar.call <- function(e,...)deparse(e,...) >> asChar.default <- function(e,...)as.character(e,...) >> >>> asChar(xDy) >> >> [1] "x$y" >> >>> asChar(1:5) >> >> [1] "1" "2" "3" "4" "5" >> >> >> Cheers, >> Bert >> >> Bert Gunter >> Genentech Nonclinical Biostatistics >> (650) 467-7374 >> >> "Data is not information. Information is not knowledge. And knowledge >> is certainly not wisdom." >> H. Gilbert Welch >> >> >> >> >> On Thu, May 8, 2014 at 8:56 PM, Spencer Graves >> <spencer.gra...@structuremonitoring.com> wrote: >>> >>> On 5/8/2014 8:05 PM, Bert Gunter wrote: >>>> >>>> >>>> [1] "x$y" >>>> >>>> Spencer: >>>> >>>> Does >>>> >>>> deparse(substitute(x$y)) >>>> [1] "x$y" >>>> >>>> do what you want? >>> >>> >>> >>> >>> No: The problem is methods dispatch. class(quote(x$y)) = 'call', >>> but >>> as.character(quote(x$y)) does NOT go to "as.character.call". >>> >>> >>> deparse(quote(x$y)) returns the answer I want, as Greg Snow noted >>> earlier. >>> >>> >>> However, it would be easier to remember if I could write >>> as.character(quote(x$y)) and get the same thing. >>> >>> >>> With "as.character.call <- function(x, ...)deparse(x, ...)", >>> as.character.call(quote(x$y)) returns "x$y", as desired. However, the >>> methods dispatch one might naively expect fails, as noted above. >>> >>> >>> Thanks, >>> Spencer >>> >>>> Cheers, >>>> Bert >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- Bert >>>> >>>> Bert Gunter >>>> Genentech Nonclinical Biostatistics >>>> (650) 467-7374 >>>> >>>> "Data is not information. Information is not knowledge. And knowledge >>>> is certainly not wisdom." >>>> H. Gilbert Welch >>>> >>>> >>>> >>>> >>>> On Thu, May 8, 2014 at 5:56 PM, Spencer Graves >>>> <spencer.gra...@structuremonitoring.com> wrote: >>>>> >>>>> >>>>> "as.character.call" seems not to work as an alias for >>>>> deparse. >>>>> Consider the following: >>>>> >>>>> >>>>> xDy <- quote(x$y) >>>>> class(xDy) >>>>> "call" >>>>> as.character.call <- function(x, ...)deparse(x, ...) >>>>> as.character(xDy) >>>>> [1] "$" "x" "y" >>>>> # fails >>>>> >>>>> str(xDy) >>>>> # language x$y >>>>> as.character.language <- function(x, ...)"language" >>>>> >>>>> as.character(xDy) >>>>> [1] "$" "x" "y" >>>>> >>>>> >>>>> Is it feasible to construct a method for "as.character" >>>>> that >>>>> works >>>>> for objects of class "call"? >>>>> >>>>> >>>>> Thanks, >>>>> Spencer >>>>> >>>>> >>>>> ################# >>>>> >>>>> >>>>> Thanks for the quick replies from Richard Heiberger, Greg Show & Bert >>>>> Gunter. >>>>> >>>>> >>>>> Might it make sense to create as.character.call as an alias for >>>>> deparse? >>>>> >>>>> >>>>> A few years ago, I wrote several functions like "predict.fd" as >>>>> aliases for functions with less memorable names like "eval.fd". Doing >>>>> that >>>>> made the "fda" package easier to use, at least for me ;-) >>>>> >>>>> >>>>> Thanks again, >>>>> Spencer >>>>> >>>>> >>>>> On 5/7/2014 2:39 PM, Bert Gunter wrote: >>>>>> >>>>>> >>>>>> ... and >>>>>> >>>>>>> str(quote(x$y)) >>>>>> >>>>>> >>>>>> language x$y >>>>>> >>>>>>> as.list(quote(x$y)) >>>>>> >>>>>> >>>>>> [[1]] >>>>>> `$` >>>>>> >>>>>> [[2]] >>>>>> x >>>>>> >>>>>> [[3]] >>>>>> y >>>>>> >>>>>> ## may be instructive. >>>>>> >>>>>> Cheers, >>>>>> Bert >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Bert Gunter >>>>>> Genentech Nonclinical Biostatistics >>>>>> (650) 467-7374 >>>>>> >>>>>> "Data is not information. Information is not knowledge. And knowledge >>>>>> is certainly not wisdom." >>>>>> H. Gilbert Welch >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, May 7, 2014 at 2:30 PM, Greg Snow <538...@gmail.com> wrote: >>>>>>>> >>>>>>>> >>>>>>>> deparse(quote(x$y)) >>>>>>> >>>>>>> >>>>>>> [1] "x$y" >>>>>>> >>>>>>> It looks like deparse does what you want here. >>>>>>> >>>>>>> On Wed, May 7, 2014 at 3:23 PM, Spencer Graves >>>>>>> <spencer.gra...@structuremonitoring.com> wrote: >>>>>>>> >>>>>>>> >>>>>>>> Hello, All: >>>>>>>> >>>>>>>> >>>>>>>> Is there a simple utility someplace to convert "quote(x$y)" >>>>>>>> to >>>>>>>> "x$y"? >>>>>>>> >>>>>>>> >>>>>>>> I ask, because as.character(quote(x$y)) is a character >>>>>>>> vector >>>>>>>> of >>>>>>>> length 3 = "$" "x" "y". I want to convert this to "x$y" for a >>>>>>>> diagnostic >>>>>>>> message. >>>>>>>> >>>>>>>> >>>>>>>> class(quote(x$y)) = "call", which suggests I could write >>>>>>>> "as.character.call" to perform this function. However, before I do, >>>>>>>> I >>>>>>>> felt >>>>>>>> a need to ask for other thoughts on this. >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Spencer >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Gregory (Greg) L. Snow Ph.D. >>>>>>>> 538...@gmail.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. >>>>> >>>>> >>>>> >>>> >>> >>> >>> -- >>> Spencer Graves, PE, PhD >>> President and Chief Technology Officer >>> Structure Inspection and Monitoring, Inc. >>> 751 Emerson Ct. >>> San José, CA 95126 >>> ph: 408-655-4567 >>> web: www.structuremonitoring.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.