From: Ghosh, Sandeep <sghosh_at_lexgen.com>

Date: Tue 26 Apr 2005 - 02:13:29 EST

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.html Received on Tue Apr 26 02:18:48 2005

Date: Tue 26 Apr 2005 - 02:13:29 EST

Hi All,

barchart(mean ~ month | year, horizontal=FALSE, layout=c(1,2), origin = 0, sd = as.numeric(as.character(stdDev)), count = as.numeric(as.character(miceCount)), panel = function(x, y, ..., sd, count, subscripts) { panel.barchart(x, y, ...) sd <- sd[subscripts] count <- count[subscripts] panel.segments(x - sd / sqrt(count), as.numeric(y), x + sd / sqrt(count), as.numeric(y), col = 'red', lwd = 2) }))

Thanks,

Sandeep

-----Original Message-----

From: Deepayan Sarkar [mailto:deepayan@stat.wisc.edu]
Sent: Thursday, April 21, 2005 9:13 PM

To: r-help@stat.math.ethz.ch

Cc: Ghosh, Sandeep

Subject: Re: [R] Need help with R date handling and barchart with
errorbars

On Thursday 21 April 2005 17:44, Ghosh, Sandeep wrote:

> Hi All..

*>
**> Have a question.. For the following r code
**>
**> testdata <- as.data.frame(t(structure(c(
**> "1/1/04","LV1",3.8,2,87,
**> "2/1/04","LV1",3.2,3,28,
**> "3/1/04","LV1",3.4,3,88,
**> "4/1/04","LV1",3,2,26,
**> "5/1/04","LV1",3.8,2,87,
**> "6/1/04","LV1",3.2,3,28,
**> "7/1/04","LV1",3.4,3,88,
**> "8/1/04","LV1",3,2,26,
**> "9/1/04","LV1",3.8,2,87,
**> "10/1/04","LV1",3.2,3,28,
**> "11/1/04","LV1",3.4,3,88,
**> "12/1/04","LV1",3,2,26,
**> "1/1/05","LV1",3.8,2,87,
**> "2/1/05","LV1",3.2,3,28,
**> "3/1/05","LV1",3.4,3,88,
**> "4/1/05","LV1",3,2,26
**> ), .Dim=c(5,16))));
*

Which makes all the columns factors. Odd choice.

> colnames(testdata) <-

*> c('date','dataset','mean','stdDev','miceCount');
**> testdata[c("date")] <- lapply(testdata[c("date")],
**> function(x) as.date(levels(x)[x]));
**> testdata[c("mean")] <- lapply(testdata[c("mean")], function(x)
**> as.numeric(levels(x)[x]));
**>
**> On trying to print the data frame
**>
**> >testdata
**>
**> I get this..
**>
**> date dataset mean stdErr miceCount
**> 1 -20454 LV1 3.8 2 87
**> 2 -20423 LV1 3.2 3 28
**> 3 -20394 LV1 3.4 3 88
**> 4 -20363 LV1 3.0 2 26
**> 5 -20333 LV1 3.8 2 87
**> 6 -20302 LV1 3.2 3 28
**> 7 -20272 LV1 3.4 3 88
**> 8 -20241 LV1 3.0 2 26
**> 9 -20210 LV1 3.8 2 87
**> 10 -20180 LV1 3.2 3 28
**> 11 -20149 LV1 3.4 3 88
**> 12 -20119 LV1 3.0 2 26
**> 13 -20088 LV1 3.8 2 87
**> 14 -20057 LV1 3.2 3 28
**> 15 -20029 LV1 3.4 3 88
**> 16 -19998 LV1 3.0 2 26
**>
**> where as when I run this
**>
**> >dates <- c(lapply(testdata[c("date")], function(x)
**> > as.date(levels(x)[x])));
**>
**> the ouput is
**> $date
**> [1] 1Jan4 1Feb4 1Mar4 1Apr4 1May4 1Jun4 1Jul4 1Aug4 1Sep4 1Oct4
**> 1Nov4 1Dec4 [13] 1Jan5 1Feb5 1Mar5 1Apr5
**>
**> Question:
**> 1. Can someone please explain me why the difference.
*

No difference (except that the print method for data.frame's doesn't know about 'date's.). Note that you have managed to create dates approximately 2000 years in the past.

> 2. I later want to plot the data using barchart eg (barchart(date ~

*> mean | dataset, data=testdata);) in which case will the dates appear
**> in assending order of dates or something special needs to be done for
**> that.
*

If all you want is the dates in the right order, you could do:

testdata$date <- factor(testdata$date, levels = testdata$date)

> 3. Also I'll really appreciate if anyone can tell me if there's a way

*> to get stdErrorBars on charts that are drawn using barchart function
**> in lattice package.
*

The S language encourages the user to program the little things that are not readily available. In this case (making a guess about what sort of error bar you want):

with(testdata,

barchart(date ~ as.numeric(as.character(mean)) | dataset, origin = 0, sd = as.numeric(as.character(stdDev)), count = as.numeric(as.character(miceCount)), panel = function(x, y, ..., sd, count, subscripts) { panel.barchart(x, y, ...) sd <- sd[subscripts] count <- count[subscripts] panel.segments(x - sd / sqrt(count), as.numeric(y), x + sd / sqrt(count), as.numeric(y), col = 'red', lwd = 2) }))

which would have been more readable if everything in your data frame were not factors. (It's none of my business, but I think dotplots would be a better choice than barcharts if you want to add error bars.)

Deepayan

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.html Received on Tue Apr 26 02:18:48 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:25 EST
*