On Tue, Jul 26, 2011 at 10:12 AM, Ista Zahn <izahn@psych.rochester.edu>
wrote:
> OK, easy enough:
>
> dat.tmp <- data.frame(id, month, value)
> my.plot <- function(dat) {print(dat[, c("id", "value")])}
> by(dat.tmp, id, my.plot)

Excellent. The output of that last line is:

* id value
1  1    10
2  1    12
3  1    11
4  1    14
5  1    16
 id value
6  2    12
7  2    10
8  2     8
  id value
9   3    14
10  3    11
11  3    15
id: 1
 id value
1  1    10
2  1    12
3  1    11
4  1    14
5  1    16
------------------------------------------------------------
id: 2
 id value
6  2    12
7  2    10
8  2     8
------------------------------------------------------------
id: 3
  id value
9   3    14
10  3    11
11  3    15*

I want the second part (separated by IDs), and not the first part. I tried
this:

> by(dat.tmp, id, my.plot) -> output

Output has exactly what I want. However, the first part is still printed on
the screen. How can I prohibit the first part to be printed?

> Why? What do you have against loops?

Nothing personal! I just see this notion of avoiding loops and using R-style
functions over and over in my readings and my first R instructor also
mentioned R is a very powerful language as long as we avoid loops. I don't
have a thorough knowledge of why loops are not as efficient as vector-based
solutions, but I trust what I've heard and read.

	[[alternative HTML version deleted]]

