The second example shows how error crosses can be done for multiple variables where the grouping variable is found dynamically. The errorCircles example shows how to do this in one step.
To draw error bars for single variables error.bars, or by groups error.bars.by, or to find descriptive statistics describe or descriptive statistics by a grouping variable describeBy and statsBy.
A much improved version is now called errorCircles.
Examples
#just draw one pair of variablesdesc <- describe(attitude)x <- desc[1,]y <- desc[2,]error.crosses(x,y,xlab=rownames(x),ylab=rownames(y))#now for a bit more complicated plotting data(bfi)desc <- describeBy(bfi[1:25],bfi$gender)#select a high and low grouperror.crosses(desc$'1',desc$'2',ylab="female scores", xlab="male scores",main="BFI scores by gender") abline(a=0,b=1)#do it from summary statistics (using standard errors) g1.stats <- data.frame(n=c(10,20,30),mean=c(10,12,18),se=c(2,3,5))g2.stats <- data.frame(n=c(15,20,25),mean=c(6,14,15),se =c(1,2,3))error.crosses(g1.stats,g2.stats)#Or, if you prefer to draw +/- 1 sd. instead of 95% confidenceg1.stats <- data.frame(n=c(10,20,30),mean=c(10,12,18),sd=c(2,3,5))g2.stats <- data.frame(n=c(15,20,25),mean=c(6,14,15),sd =c(1,2,3))error.crosses(g1.stats,g2.stats,sd=TRUE)#and seem even fancy plotting: This is taken from a study of mood#four films were given (sad, horror, neutral, happy)#with a pre and post testif(require(psychTools)){data(psychTools::affect)colors <- c("black","red","green","blue")films <- c("Sad","Horror","Neutral","Happy")affect.mat <- describeBy(psychTools::affect[10:17],psychTools::affect$Film,mat=TRUE) error.crosses(affect.mat[c(1:4,17:20),],affect.mat[c(5:8,21:24),], labels=films[affect.mat$group1],xlab="Energetic Arousal", ylab="Tense Arousal",colors = colors[affect.mat$group1],pch=16,cex=2)}