[R] plot via xyplot not being saved

Benilton Carvalho bcarvalh at jhsph.edu
Sat Jun 16 06:55:56 CEST 2007


Thank you Deepayan,

I understand the behavior of not printing out the results inside the  
functions.

What I didn't know was that for xyplot() saving the plot actually  
meant "save the result I see", which does not happen with plot(), in  
which case my function test() works just fine if I replaced xyplot()  
by plot().

Thank you very much,

b

On Jun 16, 2007, at 12:26 AM, deepayan.sarkar at gmail.com wrote:

> On 6/15/07, Benilton Carvalho <bcarvalh at jhsph.edu> wrote:
>> So, if those statements are inside a function, I have to make my
>> function to have an 'echo' argument/functionality? eg.:
>>
>> ## begin test.R
>> test <- function(n){
>>    y <- rnorm(n)
>>    x <- rnorm(n)
>>    z <- sample(letters[1:4], n, rep=T)
>>    library(lattice)
>>    bitmap("tst.png")
>>    xyplot(y~x|z)
>>    dev.off()
>> }
>>
>> test(100)
>> ## end test.R
>>
>> source("test.R", echo=T)
>>
>> also fails in this case...
>
> Yes. The following will produce some output (the values of x + y and x
> - y) if you type it out at the R prompt:
>
> x <- rnorm(10)
> y <- rnorm(10)
> x + y
> x - y
>
> If you put that in a file and source it, nothing will get printed,
> unless you have echo=TRUE. If you define
>
> test <- function(){
>    x <- rnorm(10)
>    y <- rnorm(10)
>    x + y
>    x - y
> }
>
> calling test() at the R prompt will only print x - y and not x + y,  
> and so on.
>
> This is all standard R behaviour. If you want something to be printed
> irrespective of context, use print(), e.g.
>
> print(x + y)
>
> or
>
> print(xyplot(y~x|z))
>
> This is also mentioned in the R FAQ.
>
> -Deepayan



More information about the R-help mailing list