[R] lattice: cumsum and xyplot
Wolfram Fischer
wolfram at fischer-zim.ch
Fri Jun 11 10:52:25 CEST 2004
--- In reply to: ---
>Date: 11.06.04 09:33 (+0200)
>From: Wolski <wolski at molgen.mpg.de>
>Subject: Re: [R] lattice: cumsum and xyplot
>
> Hi!
> To get a data.frame
>
> as.data.frame(do.call("rbind",d.cum))
Thanks for this interesting hint.
To get the lost names of factors again,
I tried now the following solution:
data(barley)
d.cum <-
with( barley, by( yield, INDICES=list(site=site,year=year), FUN=function(x)x ) )
test.bylist2dataframe <- function( bylist, col.names=NULL ){
veqq <- as.data.frame( do.call( 'rbind', d.cum ) )
if( ! is.null( col.names ) ) colnames( veqq ) <- col.names
viqt.vars <- names( dimnames(bylist) )
if( length( viqt.vars ) == 2 ){
veqq[,viqt.vars[1]] <- as.factor(
rep( dimnames( bylist )[[viqt.vars[1]]], times=dim(bylist)[2] ) )
veqq[,viqt.vars[2]] <- as.factor(
rep( dimnames( bylist )[[viqt.vars[2]]], each=dim(bylist)[1] ) )
}
veqq
}
d.cum.dfr <- test.bylist2dataframe( d.cum, col.names=unique( as.character( barley$variety ) ) )
But now I have the following problems:
- ``d.cum.dfr'' is not yet normalised.
- My solution works only for two ``INDICES''.
So, what to do? - Wolfram
> *********** REPLY SEPARATOR ***********
>
> On 6/11/2004 at 9:17 AM Wolfram Fischer wrote:
>
> >>>I want to display cumulative summary functions with lattice.
> >>>
> >>>First I tried to get cumulated data:
> >>> library(lattice)
> >>> data(barley)
> >>>
> >>> d.cum <- with( barley, by( yield, INDICES=list(site=site,year=year),
> >>>FUN=cumsum ) )
> >>>
> >>>I got a list of vectors.
> >>>I tried to get a dataframe which I could use in xyplot.
> >>>But neither of the following functions led to the goal:
> >>>
> >>> d.cum.df1 <- as.data.frame.list( d.cum )
> >>> d.cum.df2 <- as.data.frame.array( d.cum )
> >>>
> >>>
> >>>Then I tried to solve my problem within the panel function.
> >>>But now I had to set a value for ylim.
> >>>
> >>> test.xyplot <- function( data=barley, yr=1931, ymax=600, type='l',
> >>>... ){
> >>> print( xyplot( data=data, subset=year==yr
> >>> , type=type
> >>> , panel=function( x, y, ... ){
> >>> panel.xyplot( x, cumsum(y), ... )
> >>> }
> >>> , ylim=c( 0, ymax )
> >>> , yield ~ variety | site
> >>> , scales=list( x=list( alternating=1, rot=90 ) )
> >>> , ...
> >>> ))
> >>> }
> >>>
> >>>What could I do to get a dataframe containing the cumulative values
> >>>of ``yield'' which I could use to get the cumulative summary plots?
> >>>
> >>>Thanks - Wolfram
More information about the R-help
mailing list