Wann funktioniert das Setzen von 'perl = TRUE' in 'strsplit' nicht (wie beabsichtigt oder überhaupt)?

Ich habe gerade ein Benchmarking durchgeführt, als ich versucht habe, Code zu optimieren, und habe das beobachtetstrsplit mitperl=TRUE istschneller als laufenstrsplit mitperl=FALSE. Zum Beispiel,

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

Meine Frage (oder vielmehr eine Variation der Frage im Titel) lautet also, unter welchen Umständen dies unbedingt erforderlich wäreperl=FALSE (Auslassen derfixed unduseBytes Parameter)? Mit anderen Worten, was können wir nicht verwendenperl=TRUE Dies kann durch Einstellen erfolgenperl=FALSE?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage