[R] Expand dataframe according to limits defined per row

Dennis Murphy djmuser at gmail.com
Fri Oct 7 22:18:58 CEST 2011


Here's one way to do it with the plyr package:

library('plyr')
f <- function(df) with(df, data.frame(B = B, E = seq(C, D)))
ddply(d, 'A', f)

A corresponding solution with the data.table package would be

library('data.table')
dt <- data.table(d, key = 'A')
dt[, list(B, E = seq(C, D)), by = 'A']

HTH,
Dennis

On Fri, Oct 7, 2011 at 7:02 AM, darkgaze <donaldngwe at gmail.com> wrote:
> Hi all,
>
> Would appreciate help with transforming this:
>
> A B C D
> a 2 1 4
> b 3 3 5
>
> into this:
>
> A B E
> a 2 1
> a 2 2
> a 2 3
> a 2 4
> b 3 3
> b 3 4
> b 3 5
>
> (C<=E<=D)
>
> Best,
> Don
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Expand-dataframe-according-to-limits-defined-per-row-tp3882319p3882319.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