# [R] plot and factors

Deepayan Sarkar deepayan.sarkar at gmail.com
Tue Dec 6 21:26:40 CET 2005

```On 12/2/05, Jason Miller <millerj at truman.edu> wrote:
>
> I'm relatively new to R and trying to jump in feet first.  I've been
> able to learn a lot from on-line and printed documentation, but
> here's one question to which I can't find an answer.  Well, it's a
> question with a couple parts.  Thanks in advance for any direction
> (partial or complete) that anyone can provide.
>
> I have a data frame with three columns: Year, Semester, value1.  I
> want to treat Year and Semester as factors; there are many years, and
> there are three semesters (Fall, Spring, Summer).
>
> First, I would like to be able to plot the data in this frame as Year
> v. value with one curve for each factor.  I have been unable to do
> this.  Is there any built-in R functionality that makes this easy, or
> do I need to build this by hand (e.g., using the techniques in FAQ
> 5.11 or 5.29)?
>
> Second, I would like to be able to plot the values against a doubly
> labeled axis that uses Year and Semester (three Semester ticks per
> Year).  Is there a relatively straightforward way to do this?
> (What's happening, of course, is that I'd like to treat Year+Semester
> as a single factor for the purpose of marking the axis, but I'm not
> sure how to do that, either.)

Here are some possibilities using the lattice package:

library(lattice)

d <-
data.frame(Year = factor(rep(2000:2004, each = 3)),
Semester = gl(3, 1, 15,
labels = c("Fall", "Spring", "Summer")),
val = sort(rnorm(15)))

xyplot(val ~ Year, d, groups = Semester,
type = 'o', auto.key = TRUE)

xyplot(val ~ Year:Semester, d,
scales = list(x = list(rot = 90)))

dotplot(Year:Semester ~ val, d)

dotplot(Semester ~ val | Year, d,
layout = c(1, 5))

HTH,
-Deepayan

```