egsub
From R.utils v1.32.4
by Henrik Bengtsson
Global substitute of expression using regular expressions
Global substitute of expression using regular expressions.
- Keywords
- utilities, programming
Usage
egsub(pattern, replacement, x, ..., value=TRUE, envir=parent.frame(), inherits=TRUE)
Arguments
- pattern
- A
character
string with the regular expression to be matched, cf.gsub
(). - replacement
- A
character
string of the replacement to use when there is a match, cf.gsub
(). - x
- The
expression
or afunction
to be modified. - ...
- Additional arguments passed to
gsub
() - value
- If
TRUE
, the value of the replacement itself is used to look up a variable with that name and then using that variables value as the replacement. Otherwise the replacement value is used. - envir, inherits
- An
environment
from where to find the variable and whether the search should also include enclosing frames, cf.get
(). Only use ifv
Value
- Returns an
expression
.
Examples
# Original expression
expr <- substitute({
res <- foo.bar.yaa(2)
print(res)
R.utils::use("R.oo")
x <- .b.
})
# Some predefined objects
foo.bar.yaa <- function(x) str(x)
a <- 2
b <- a
# Substitute with variable name
expr2 <- egsub("^[.]([a-zA-Z0-9_.]+)[.]$", "\\1", expr, value=FALSE)
print(expr2)
## {
## res <- foo.bar.yaa(2)
## print(res)
## R.utils::use("R.oo")
## x <- b
## }
# Substitute with variable value
expr3 <- egsub("^[.]([a-zA-Z0-9_.]+)[.]$", "\\1", expr, value=TRUE)
print(expr3)
## {
## res <- foo.bar.yaa(2)
## print(res)
## R.utils::use("R.oo")
## x <- 2
## }
# Substitute the body of a function
warnifnot <- egsub("stop", "warning", stopifnot, value=FALSE)
print(warnifnot)
warnifnot(pi == 3.14)
Community examples
Looks like there are no examples yet.