[R] stripchart problem
Gabor Grothendieck
ggrothendieck at myway.com
Mon Dec 8 20:12:15 CET 2003
stripchart always plots all the points in a given group with the same
symbol, so you can't do what you want with it. Here are some
alternatives:
1. Its not very nice but coplot can get you a chart somewhat
in the vein you are looking for:
with(famdata, coplot(age~family|family, pch=ifelse(sex=="m",22,1)))
2. With a bit more work, you can try creating it yourself using plot:
with(famdata, plot(age, as.numeric(family), pch=ifelse(sex=="m",22,1),axes=F))
axis(1)
lv <- levels(famdata$family)
axis(2,seq(lv),lv)
I have not examined the above closely so you might want to double
check them.
---
Hello,
I am trying to plot age distribution data for a certain condition that
runs in families. Below is a simplified view of the dataset, i.e. in
this case there are four families, each line corresponding to one
individual with age at diagnosis and sex.
> famdata
family age sex
1 fam1 2.1 f
2 fam1 2.3 f
3 fam1 1.0 m
4 fam2 7.3 f
5 fam2 4.1 f
6 fam2 1.2 f
7 fam2 0.6 m
8 fam3 3.5 m
9 fam3 2.5 m
10 fam3 2.9 m
11 fam3 5.6 m
12 fam3 4.4 f
13 fam10 1.1 f
14 fam10 1.2 f
15 fam10 2.9 f
16 fam10 2.2 f
17 fam10 4.7 m
I can nicely plot the age distribution by families with
> stripchart(famdata$age~famdata$family)
I would like to plot datapoints according to the sex of the person, e.g.
circle for a girl and square for a boy, like this:
> stripchart(famdata$age~famdata$family, pch=ifelse(famdata$sex=="m",
22, 1))
But this command doesn't work as I expected. Datapoints from fam2 are
shown as squares, all the rest as circles. Still , this seems OK:
> ifelse(famdata$sex=="m", 22, 1)
[1] 1 1 22 1 1 1 22 22 22 22 22 1 1 1 1 1 22
Any clues ?
Thanks a lot for your help,
alex
More information about the R-help
mailing list