[R] Help with apply and split...
jim holtman
jholtman at gmail.com
Fri May 2 12:52:45 CEST 2008
What you are seeing are the row numbers of the original locations. If
datgic is really a data frame, this is probably what you want using
lapply and do.call:
> x <- data.frame(a=letters, b=sample(1:4, 26, TRUE))
> y <- lapply(split(x, x$b), tail, 1)
> do.call(rbind, y)
a b
1 z 1
2 y 2
3 w 3
4 x 4
On Fri, May 2, 2008 at 4:40 AM, Mike H. Ryu <hokyung.ryu at yale.edu> wrote:
> I'm trying to drop all rows except for the ones with the most recent year.
> So I split the data frame by NPERMNO and keep just the last record of all
> groups.
>
> datg=t(sapply(split(datgic, datgic$NPERMNO, drop=TRUE), function(x){return(
> x[nrow(x),] )}))
>
>
> I get something like this...
>
> GVKEY NPERMNO GIC year
> 10001 12994 10001 55102010 2007
> 10002 19049 10002 40101015 2007
> 10009 16739 10009 40101010 1999
>
> Has this been made into a proper data frame. How come the row numbers are
> not 1,2,3,4...?
>
> Thank you so much, and I would really appreciate any help!
>
> Mike
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
More information about the R-help
mailing list