On Oct 11, 2010, at 10:16 AM, clee wrote:


I have data that looks like this:

start     end     value
1          4         2
5          8         1
9         10        0


I want to transform the data so that it becomes:

startend     value
1               2
2               2
3               2
4               2
5               1
6               1
7               1
8               1
9               0
10             0

> do.call("rbind",
           apply(dta, 1,
             function(.r) matrix(c(
                          seq(.r[1], .r[2]),
                          vals=rep(.r[3], .r[2]-.r[1]+1) ),
                          ncol=2) ))
      [,1] [,2]
 [1,]    1    2
 [2,]    2    2
 [3,]    3    2
 [4,]    4    2
 [5,]    5    1
 [6,]    6    1
 [7,]    7    1
 [8,]    8    1
 [9,]    9    0
[10,]   10    0


----
I've written a for loop that can do the transformation BUT I need to do this on very large datasets (millions of rows). Does anyone know of an R package
that has a function that can do this transformation?

Any help is much appreciated!

Thanks!
--
View this message in context: 
http://r.789695.n4.nabble.com/help-with-simple-but-massive-data-transformation-tp2989850p2989850.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to