Skip to content

Profiling question: string formatting extremely slow

2 messages · Olivier Boudry, jim holtman

#
Try this way.  Took less than 1 second for 50,000
+     x <- sample(50000)  # test data
+     x[sample(50000,10000)] <- 'asdfasdf'  # characters strings
+     which.num <- grep("^[ 0-9]+$", x)  # find numbers
+     # convert to leading 0
+     x[which.num] <- sprintf("%018.0f", as.numeric(x[which.num]))
+     x[-which.num] <- toupper(x[-which.num])
+ })
   user  system elapsed
   0.25    0.00    0.25
[1] "000000000000026550" "000000000000019100" "000000000000045961"
"000000000000031473" "000000000000005031" "000000000000012266"
 [7] "000000000000034418" "000000000000042279" "000000000000041193"
"ASDFASDF"           "000000000000005760" "000000000000035659"
[13] "ASDFASDF"           "000000000000008420" "000000000000042220"
"ASDFASDF"           "000000000000039903" "000000000000032234"
[19] "000000000000024125" "000000000000032970" "000000000000006814"
"000000000000000215" "ASDFASDF"           "000000000000045239"
[25] "ASDFASDF"           "ASDFASDF"           "000000000000043065"
"ASDFASDF"           "000000000000007642" "000000000000019196"
On Wed, Mar 18, 2009 at 12:16 PM, Olivier Boudry
<olivier.boudry at gmail.com> wrote: