| error.crosses {psych} | R Documentation |
Given two vectors of data (X and Y), plot the means and show standard errors in both X and Y directions.
error.crosses(x,y,labels=NULL,main=NULL,xlim=NULL,ylim= NULL,xlab=NULL,ylab=NULL,pos=NULL,offset=1,arrow.len=.2,alpha=.05,sd=FALSE,...)
x |
A vector of data or summary statistics (from Describe) |
y |
A second vector of data or summary statistics (also from Describe) |
labels |
the names of each pair – defaults to rownames of x |
main |
The title for the graph |
xlim |
xlim values if desired– defaults to min and max mean(x) +/- 2 se |
ylim |
ylim values if desired – defaults to min and max mean(y) +/- 2 se |
xlab |
label for x axis – grouping variable 1 |
ylab |
label for y axis – grouping variable 2 |
pos |
Labels are located where with respect to the mean? |
offset |
Labels are then offset from this location |
arrow.len |
Arrow length |
alpha |
alpha level of error bars |
sd |
if sd is TRUE, then draw means +/- 1 sd) |
... |
Other parameters for plot |
For an example of two way error bars describing the effects of mood manipulations upon positive and negative affect, see http://personality-project.org/revelle/publications/happy-sad-appendix/FIG.A-6.pdf
The second example shows how error crosses can be done for multiple variables where the grouping variable is found dynamically.
William Revelle
revelle@northwestern.edu
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 describe.by
#just draw one pair of variables
desc <- 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 <- describe.by(bfi[1:25],bfi$gender) #select a high and low group
error.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),means=c(10,12,18),se=c(2,3,5))
g2.stats <- data.frame(n=c(15,20,25),means=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% confidence
g1.stats <- data.frame(n=c(10,20,30),means=c(10,12,18),sd=c(2,3,5))
g2.stats <- data.frame(n=c(15,20,25),means=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 test
data(affect)
colors <- c("black","red","white","blue")
films <- c("Sad","Horror","Neutral","Happy")
map.mat <- describe.by(maps[10:17],maps$Film,mat=TRUE)
error.crosses(map.mat[c(1:4,17:20),],map.mat[c(5:8,21:24),],labels=films[map.mat$group1],xlab="Energetic Arousal",ylab="Tense Arousal",col=colors[map.mat$group1],pch=16,cex=2)