wow =P

Thank you guys. I will use the hb2 , because it is the fastest one.

Eddie

> wow! :)
>
> vQ
>
> Henrik Bengtsson wrote:
> > library(gsubfn)
> > library(gtools)
> > library(rbenchmark)
> >
> > n <- 10000
> > df <- data.frame(
> >   a = rnorm(n),
> >   b = rnorm(n),
> >   c = rnorm(n),
> >   ip = replicate(n, paste(sample(255, 4), collapse='.'), simplify=TRUE)
> > )
> >
> > res <- benchmark(columns=c('test', 'elapsed'), replications=10,
> > order=NULL, peda = {
> >     connection <- textConnection(as.character(df$ip))
> >     o <- do.call(order, read.table(connection, sep='.'))
> >     close(connection)
> >     df[o, ]
> >   },
> >
> >   peda2 = {
> >     connection <- textConnection(as.character(df$ip))
> >     dfT <- read.table(connection, sep='.', colClasses=rep("integer",
> > 4), quote="", na.strings=NULL, blank.lines.skip=FALSE)
> >     close(connection)
> >     o <- do.call(order, dfT)
> >     df[o, ]
> >   },
> >
> >   hb = {
> >     ip <- strsplit(as.character(df$ip), split=".", fixed=TRUE)
> >     ip <- unlist(ip, use.names=FALSE)
> >     ip <- as.integer(ip)
> >     dim(ip) <- c(4, nrow(df))
> >     ip <- 256^3*ip[1,] + 256^2*ip[2,] + 256*ip[3,] + ip[4,]
> >     o <- order(ip)
> >     df[o, ]
> >   },
> >
> >   hb2 = {
> >     ip <- strsplit(as.character(df$ip), split=".", fixed=TRUE)
> >     ip <- unlist(ip, use.names=FALSE)
> >     ip <- as.integer(ip);
> >     dim(ip) <- c(4, nrow(df))
> >     o <- sort.list(ip[4,], method="radix", na.last=TRUE)
> >     for (kk in 3:1) {
> >       o <- o[sort.list(ip[kk,o], method="radix", na.last=TRUE)]
> >     }
> >     df[o, ]
> >   }
> > )
> >
> > print(res)
> >
> >    test elapsed
> > 1  peda    4.12
> > 2 peda2    4.08
> > 3    hb    0.28
> > 4   hb2    0.25
>
> ______________________________________________
> 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.



        [[alternative HTML version deleted]]

______________________________________________
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