Kiedy ustawienie „perl = TRUE” w „strsplit” nie działa (zgodnie z przeznaczeniem lub w ogóle)?
Właśnie przeprowadziłem testy porównawcze, próbując zoptymalizować jakiś kod i zaobserwować tostrsplit
zperl=TRUE
jestszybciej niż bieganiestrsplit
zperl=FALSE
. Na przykład,
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
Moje pytanie (a raczej odmiana pytania w tytule) brzmi: w jakich okolicznościach absolutnie potrzebnaperl=FALSE
(pomijającfixed
iuseBytes
parametry)? Innymi słowy, czego nie możemy zrobić używającperl=TRUE
można to zrobić, ustawiającperl=FALSE
?