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:
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.