[R] Using by() and stacking back sub-data frames to one data frame
Stephan Lindner
lindners at umich.edu
Thu Jun 25 05:34:06 CEST 2009
Dear all,
I have a code where I subset a data frame to match entries within
levels of an factor (actually, the full script uses three difference
factors do do that). I'm very happy with the precision with which I can
work with R, but since I loop over factor levels, and the data frame is
big, the process is slow. So I've been trying to speed up the process
using by(), but I got stuck at the point where I want to stack back
the sub- data frames, and I was wondering whether someone could help me
out.
Here is an example:
<--
> y <- data.frame(suid = c(rep(1074034,16),rep(1123003,4)),
month = rep(c(12,1,2,3),5),
esr = c(6,2,2,2,1,1,1,1,2,2,2,2,9,9,9,9,2,2,2,2))
> by(y,y$month,function(x)return(x))
y$month: 1
suid month esr
2 1074034 1 2
6 1074034 1 1
10 1074034 1 2
14 1074034 1 9
18 1123003 1 2
------------------------------------------------------------
y$month: 2
suid month esr
3 1074034 2 2
7 1074034 2 1
11 1074034 2 2
15 1074034 2 9
19 1123003 2 2
------------------------------------------------------------
y$month: 3
suid month esr
4 1074034 3 2
8 1074034 3 1
12 1074034 3 2
16 1074034 3 9
20 1123003 3 2
------------------------------------------------------------
y$month: 12
suid month esr
1 1074034 12 6
5 1074034 12 1
9 1074034 12 2
13 1074034 12 9
17 1123003 12 2
-->
What I would like to do is stacking these four data frames back to one
data frame, which in this simple example would just be y. I tried
unlist(), unclass() and rbind(), but none of them would work.
Thanks a lot,
Stephan
--
-----------------------
Stephan Lindner
University of Michigan
More information about the R-help
mailing list