Quando a configuração 'perl = TRUE' em 'strsplit' não funciona (como pretendido ou de todo)?
Eu só fiz alguns benchmarking ao tentar otimizar alguns códigos e observei questrsplit
comperl=TRUE
éMais rápido do que correrstrsplit
comperl=FALSE
. Por exemplo,
set.seed(1)
ff <- function() paste(sample(10), collapse= " ")
xx <- replicate(1e5, ff())
system.time(t1 <- strsplit(xx, "[ ]"))
# user system elapsed
# 1.246 0.002 1.268
system.time(t2 <- strsplit(xx, "[ ]", perl=TRUE))
# user system elapsed
# 0.389 0.001 0.392
identical(t1, t2)
# [1] TRUE
Então, minha pergunta (ou melhor, uma variação da questão no título) é, sob quais circunstâncias seria absolutamente necessárioperl=FALSE
(deixando de fora ofixed
euseBytes
parâmetros)? Em outras palavras, o que não podemos fazer usandoperl=TRUE
isso pode ser feito configurandoperl=FALSE
?