[R] Sorting Panel Data by Time
Dennis Murphy
djmuser at gmail.com
Wed Nov 9 01:33:59 CET 2011
Here's another approach using the plyr and data.table packages, where
df is the name I gave to your example data:
# plyr
library('plyr')
ddply(df, .(TIME), mutate, L1 = sort(S1))
# Another way with the data.table package:
library('data.table')
dt <- data.table(df, key = 'TIME')
dt[, list(X1, S1, L1 = sort(S1)), by = 'TIME']
HTH,
Dennis
On Tue, Nov 8, 2011 at 11:58 AM, economicurtis <curtisesjunk at gmail.com> wrote:
> I have panel data in the following form:
>
> TIME X1 S1
> 1 1 0.99
> 1 2 0.50
> 1 3 0.01
> 2 3 0.99
> 2 1 0.99
> 2 2 0.25
> 3 3 0.75
> 3 2 0.50
> 3 1 0.25
> ... ... ......
>
> And desire a new vector of observations in which one column (S1 above) is
> sorted for each second from least to largest.
>
> That is, a new vector (L1 below) of the form:
>
> TIME X1 S1 L1
> 1 1 0.99 0.01
> 1 2 0.50 0.50
> 1 3 0.01 0.99
> 2 3 0.99 0.25
> 2 1 0.99 0.99
> 2 2 0.25 0.99
> 3 3 0.75 0.25
> 3 2 0.50 0.50
> 3 1 0.25 0.75
> ... ... ...... .....
>
> Sorry for the NOOB question, but any help would be great.
>
> Curtis Kephart
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Sorting-Panel-Data-by-Time-tp4017271p4017271.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list