From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>

Date: Thu 06 Oct 2005 - 20:04:41 EST

> The matplot example looks like the go.

> The example data didn't really show the grouping and even though I

*> mentioned time series, simply plotting the t values as an ordered
*

*> sequence is fine for this application (sorry about the red herring).
*

> The dataset below is what I should have shown:

*> 8 M1_02 4516
*

*> 9 M1_03 4498
*

> So what I ended up with was:

> # Make a wide data set

*> tw = unstack(t, t ~ pos)
*

*> # Results in a list since not all series the same length
*

*> # Find the shortest dataset
*

*> len = min(sapply(tw, length))
*

> setlen = function(l, newlen) { length(l) = newlen }

*> # Not sure why this did not work
*

*> #sapply(tw, setlen, len)
*

*> }
*

*> matplot(data.frame(tw), type='l')
*

> Apart from flying a bit blind, I obtained the plot I was after.

> thanks

*> https://stat.ethz.ch/mailman/listinfo/r-help
*

*> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
*

>

Date: Thu 06 Oct 2005 - 20:04:41 EST

> # Not sure why this did not work

*> #sapply(tw, setlen, len)
*

It probably did, but you discarded the result. Try

tw <- sapply(tw, setlen, len)

On Thu, 6 Oct 2005, sosman wrote:

> Marc Schwartz wrote:

*> > On Wed, 2005-10-05 at 22:19 +1000, sosman wrote:
**> >
**> >>I have some data in a CSV file:
**> >>
**> >>time,pos,t,tl
**> >>15:23:44:350,M1_01,4511,1127
**> >>15:23:44:350,M1_02,4514,1128
**> >>15:23:44:350,M1_03,4503,1125
**> >>...
**> >>15:23:44:491,M2_01,4500,1125
**> >>15:23:44:491,M2_02,4496,1124
**> >>15:23:44:491,M2_03,4516,1129
**> >>...
**> >>15:23:44:710,M3_01,4504,1126
**> >>15:23:44:710,M3_02,4516,1129
**> >>15:23:44:710,M3_03,4498,1124
**> >>...
**> >>
**> >>Each pos (eg M1_01) is an independent time series. I would like to plot
**> >>each time series as lines on a single plot and I wondered if there was
**> >>something more straight forward than I was attempting.
**> >>
**> >>I got as far as:
**> >>
**> >>fname = 't100.csv'
**> >>t = read.csv(fname)
**> >>tpos = split(t, t$pos)
**> >>plot(tpos[["M1_01"]]$t, type='l')
**> >>for (p in names(tpos)) {
**> >> lines(tpos[[p]]$t)
**> >>}
**> >>
**> >>which seems to work but then I got stuck on how to make each line a
**> >>different colour and figured that there might a be a one liner R command
**> >>to do what I want.
**> >>
**> >>Any tips would be appreciated.
**> >
**> >
**> >
**> > See the examples in ?plot.ts for some approaches.
**> >
**> > You will need to review ?ts to create time series objects from your data
**> > to be used in plot.ts().
**> >
**> > Another approach, which is not specific to time series, is ?matplot.
*

>

> The matplot example looks like the go.

>

> The example data didn't really show the grouping and even though I

>

> The dataset below is what I should have shown:

>

> pos t

> 1 M1_01 4511> 2 M1_02 4514> 3 M1_03 4503> 4 M1_01 4500> 5 M1_02 4496> 6 M1_03 4516> 7 M1_01 4504

>

> So what I ended up with was:

>

> # Make a wide data set

>

> setlen = function(l, newlen) { length(l) = newlen }

>

> for (n in names(tw)) {

> length(tw[[n]]) = len

>

> Apart from flying a bit blind, I obtained the plot I was after.

>

> thanks

>> R-help@stat.math.ethz.ch mailing list

> ______________________________________________

>

-- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.htmlReceived on Thu Oct 06 20:41:52 2005

*
This archive was generated by hypermail 2.1.8
: Sun 23 Oct 2005 - 18:24:15 EST
*