On Jan 25, 2010, at 1:46 PM, Chuck White wrote:

Hello -- I would like to know of a more efficient way of writing the following piece of code. Thanks.

options(stringsAsFactors=FALSE)
orig <- c(rep('11111111',100000),rep('22222222', 200000),rep('33333333',300000),rep('44444444',400000))
orig.unique <- unique(orig)
system.time(df <- as.data.frame(sapply(orig.unique, function(x) ifelse(orig==x, 1, 0))))

> system.time(df <- model.matrix(~orig))
   user  system elapsed
  3.122   0.204   3.312
Warning message:
In model.matrix.default(~orig) : variable 'orig' converted to a factor
>
> options(stringsAsFactors=FALSE)
> orig <- c(rep('11111111',100000),rep('22222222', 200000),rep('33333333',300000),rep('44444444',400000))
> orig.unique <- unique(orig)
> system.time(df <- as.data.frame(sapply(orig.unique, function(x) ifelse(orig==x, 1, 0))))
   user  system elapsed
 18.455   0.872  19.234



______________________________________________
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.

______________________________________________
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