Когда настройка 'perl = TRUE' в 'strsplit' не работает (как задумано или вообще)?
Я просто сделал несколько тестов, пытаясь оптимизировать код и заметил, чтоstrsplit
с участиемperl=TRUE
являетсяБыстрее чем бегstrsplit
с участиемperl=FALSE
, Например,
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
Таким образом, мой вопрос (или, скорее, вариант вопроса в названии), при каких обстоятельствах будет абсолютно необходимоperl=FALSE
(опускаяfixed
а такжеuseBytes
параметры)? Другими словами, что мы не можем сделать, используяperl=TRUE
это можно сделать, установивperl=FALSE
?