edwin Sendjaja wrote: > Hi VQ, > > Thank you. It works like charm. But I think Peter's code is faster. What is > the difference? >
i think peter's code is more r-elegant, though less generic. here's a quick test, with not so surprising results. gsubfn is implemented in r, not c, and it is painfully slow in this test. i also added gabor's suggestion. library(gsubfn) library(gtools) library(rbenchmark) n = 1000 df = data.frame( a=rnorm(n), b = rnorm(n), c = rnorm(n), ip = replicate(n, paste(sample(255, 4), collapse='.'), simplify=TRUE)) 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, ] }, waku=df[order(gsubfn(perl=TRUE, '[0-9]+', ~ sprintf('%03d', as.integer(x)), as.character(df$ip))), ], gagr=df[mixedorder(df$ip), ] ) # peda 0.070 # waku 7.070 # gagr 4.710 vQ ______________________________________________ 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.