[R] Retrieving x argument name from a trellis object
Deepayan Sarkar
deepayan.sarkar at gmail.com
Fri Aug 14 21:15:28 CEST 2009
On Fri, Aug 14, 2009 at 11:04 AM, <vincenzo.2.di-iorio at gsk.com> wrote:
>
> Dear Deepayan,
>
> First of all I'm sorry for resuming such an old thread, but I think I may
> have found an easy fix.
>
> Replacing in "xyplot.formula" (and similar internal functions for the other
> Trellis plots)
>
> foo$call <- sys.call(sys.parent())
> foo$call[[1]] <- quote(xyplot)
>
> with
>
> foo$call <- match.call()
> foo$call[[1]] <- quote(xyplot)
>
> will restore the correct behaviour while keeping the new better value for
> the call component of a trellis object introduced in lattice version 0.16 or
> higher, that if I understand correctly depends on the second (unchanged)
> line.
But consider this: we currently get
> vad <- as.table(VADeaths)
> summary(barchart(vad))
Call:
barchart(vad)
Number of observations:
[1] 20
> summary(barchart(VADeaths))
Call:
barchart(as.table(x), data, ...)
Number of observations:
[1] 20
Not perfect, but not too bad either, considering that neither
barchart.matrix() nor barchart.table() do any manipulation of the
$call component.
If I make your suggested change in barchart.formula, this is what I get:
> summary(barchart(VADeaths))
Call:
barchart(x = as.formula(form), data = data, groups = eval(groups),
origin = origin, stack = stack)
Number of observations:
[1] 20
Which would you rather have?
The point remains that the call component is meant for cosmetic use.
If you can convince me that having the other form is important, I will
be happy to include it in the "trellis" object (under a different
name, perhaps "mcall").
-Deepayan
>
> Best regards
> Vincenzo
>
> -----------------------------------------------------------------------------------
> Vincenzo Luca Di Iorio
> Consultant PME User support - GSK R&D Limited
> -----------------------------------------------------------------------------------
>
>
>
> "Deepayan Sarkar" <deepayan.sarkar at gmail.com>
>
> 12-Nov-2008 07:04
>
>
> To
> "vincenzo.2.di-iorio at gsk.com" <vincenzo.2.di-iorio at gsk.com>
> cc
> "R help" <R-help at stat.math.ethz.ch>
> Subject
> Re: [R] Retrieving x argument name from a trellis object in R 2.8.0
>
>
>
>
> On 11/11/08, vincenzo.2.di-iorio at gsk.com <vincenzo.2.di-iorio at gsk.com>
> wrote:
>> Dear all,
>>
>> let consider the following function:
>>
>> Fun1 <- function() {
>> library(lattice)
>> plot1 <- 1:10~1:10
>> pl1 <- xyplot(plot1)
>> return(pl1$call$x)
>> }
>>
>> In R 2.5.0 (or older version) we have
>>
>> > Fun1()
>> plot1
>>
>> but starting from R 2.5.1 until the latest R 2.8.0 we obtain instead
>>
>> > Fun1()
>> NULL
>>
>> because pl1$call seems to be equal to xyplot() without arguments.
>>
>> Something like xyplot(x=plot1) doesn?t work either. Again we have that
>> pl1$call is equal to xyplot() without arguments
>>
>> The situation is slightly different if we call the xyplot in the global
>> environment:
>>
>> > plot1 <- 1:10~1:10
>> > pl1 <- xyplot(plot1)
>> > pl2 <- xyplot(x=plot1)
>>
>> then we have
>>
>> > pl1$call
>> xyplot(plot1)
>> > pl1$call$x
>> NULL
>>
>> but at least
>>
>> > pl2$call
>> xyplot(x = plot1)
>> > pl2$call$x
>> plot1
>
> This is what I would have expected.
>
> I'm surprised at the odd behaviour when xyplot() is called inside a
> function, which is probably caused by my lack of understanding of how
> sys.call() works. However, the 'call' component is provided mainly for
> cosmetic reasons, and was never intended to be used programmatically.
> Why do you need this?
>
> -Deepayan
>
>> Someone knows if in R 2.8.0 it is possible to retrieve the name of the x
>> argument (i.e. plot1) directly from an object of class ?trellis? when the
>> corresponding lattice function (e.g. xyplot) is inside another function
>> (e.g. Fun1)?
>>
>> Thanks in advance
>> Vincenzo
>>
>>
>> -----------------------------------------------------------------------------------
>> Vincenzo Luca Di Iorio
>> Consultant PME User support - GSK R&D Limited
>>
>> -----------------------------------------------------------------------------------
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at 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.
>>
>
>
>
More information about the R-help
mailing list