Pattern replacement with multiple patterns
Arguments
- pattern
charactervector of patterns- replacement
charactervector of replacements- x
charactervector with input data to be curated- ignore.case
logicalindicating whether to perform pattern matching in case-insensitive manner, whereignore.case=TRUEwill ignore the uppercase/lowercase distinction.- replaceMultiple
logicalvector indicating whether to perform global substitution, wherereplaceMultiple=FALSEwill only replace the first occurrence of the pattern, usingbase::sub(). Note that this vector can refer to individual entries inpattern.- ...
additional arguments are passed to
base::gsub()orbase::sub().
Details
This function is a simple wrapper around base::gsub()
when considering a series of pattern-replacement
combinations. It applies each pattern match and replacement
in order and is therefore not vectorized.
When x input is a list each vector in the list is processed,
somewhat differently than processing one vector.
When the
listcontains anotherlist, or whenlength(x) < 100, each value inxis iterated callinggsubs(). This process is the slowest option, however not noticeble untilxhas length over 10,000.When the
listdoes not contain anotherlistand all values are non-factor, or all values arefactor, they are unlisted, processed as a vector, then relisted. This process is nearly the same speed as processing one single vector, except the time it takes to confirm the list element classes.When values contain a mix of non-factor and
factorvalues, they are separately unlisted, processed bygsubs(), then relisted and combined afterward. Again, this process is only slightly slower than option 2 above, given that it callsgsubs()twice, with two vectors.Note that
factorvalues at input are replaced withcharactervalues at output, consistent withgsub().
See also
Other jam string functions:
asSize(),
breaksByVector(),
fillBlanks(),
formatInt(),
gsubOrdered(),
makeNames(),
nameVector(),
nameVectorN(),
padInteger(),
padString(),
pasteByRow(),
pasteByRowOrdered(),
sizeAsNum(),
tcount(),
ucfirst()