character
~~|
~~+--
GString
Directly known subclasses:
public static class GString
extends characterGString(..., sep="")
character
vectors.character
string to separate the terms.as.character
Gets the processed character string.
getBuiltinDate
Gets the current date.
getBuiltinDatetime
Gets the current date and time.
getBuiltinHostname
Gets the hostname of the system running R.
getBuiltinOs
Gets the operating system of the running machine.
getBuiltinPid
Gets the process id of the current R session.
getBuiltinRhome
Gets the path where R is installed.
getBuiltinRversion
Gets the current R version.
getBuiltinTime
Gets the current time.
getBuiltinUsername
Gets the username of the user running R.
getRaw
Gets the unprocessed GString.
getVariableValue
Gets a variable value given a name and attributes.
parse
Parses a GString.
print
Prints the processed GString.
}
Methods inherited from character:
all.equal, as.data.frame, as.Date, as.POSIXlt, as.raster, downloadFile, formula, getDLLRegisteredRoutines, isOpen, toAsciiRegExprPattern, toFileListTree, uses# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# First example
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
who <- "world"
# Compare this...
cat(as.character(GString("Hello ${who}
")))
# ...to this.
cat(GString("Hello ${who}
"))
# Escaping
cat(as.character(GString("Hello \\${who}
")))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Looping over vectors
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
x <- 1:5
y <- c("hello", "world")
cat(as.character(GString("(x,y)=(${x},${y})")), sep=", ")
cat("")
cat(as.character(GString("(x,y)=(${x},$[capitalize]{y})")), sep=", ")
cat("")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Predefined ("builtin") variables
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cat(as.character(GString("Hello ${username} on host ${hostname} running R v${rversion} in process #${pid} on ${os}. R is installed in ${rhome}.")))
# Other built-in variables/functions...
cat(as.character(GString("Current date: ${date}
")))
cat(as.character(GString("Current date: $[format='%d/%m/%y']{date}
")))
cat(as.character(GString("Current time: ${time}
")))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Evaluating inline R code
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cat(as.character(GString("Simple calculation: 1+1=${`1+1`}
")))
cat(as.character(GString("Alternative current date: ${`date()`}
")))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Function values
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Call function rnorm with arguments n=1, i.e. rnorm(n=1)
cat(as.character(GString("Random normal number: $[n=1]{rnorm}
")))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Global search-replace feature
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Replace all '-' with '.'
cat(as.character(GString("Current date: ${date/-/.}
")))
# Another example
cat(as.character(GString("Escaped string: 12*12=${`12*12`/1/}
")))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Defining new "builtin" function values
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Define your own builtin variables (functions)
setMethodS3("getBuiltinAletter", "GString", function(object, ...) {
base::letters[runif(1, min=1, max=length(base::letters))]
})
cat(as.character(GString("A letter: ${aletter}
")))
cat(as.character(GString("Another letter: ${aletter}
")))
# Another example
setMethodS3("getBuiltinGstring", "GString", function(object, ...) {
# Return another GString.
GString("${date} ${time}")
})
cat(as.character(GString("Advanced example: ${gstring}
")))
# Advanced example
setMethodS3("getBuiltinRunif", "GString", function(object, n=1, min=0, max=1, ...) {
formatC(runif(n=n, min=min, max=max), ...)
})
cat(as.character(GString("A random number: ${runif}
")))
n <- 5
cat(as.character(GString("${n} random numbers: ")))
cat(as.character(GString("$[n=n, format='f']{runif}")))
cat("")
# Advanced options.
# Options are parsed as if they are elements in a list, e.g.
# list(n=runif(n=1,min=1,max=5), format='f')
cat(as.character(GString("$Random number of numbers: ")))
cat(as.character(GString("$[n=runif(n=1,min=1,max=5), format='f']{runif}")))
cat("")
Run the code above in your browser using DataLab