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.

Reply via email to