parse() mengembalikan ekspresi yang diuraikan tetapi tidak dievaluasi dalam sebuah ekspresi, sebuah "daftar" panggilan. str2expression(s) dan str2lang(s) mengembalikan versi khusus parse(text=s, keep.source=FALSE) dan oleh karena itu dapat dianggap sebagai transformasi string karakter s menjadi ekspresi, panggilan, dll.
parse(file = "", n = NULL, text = NULL, prompt = "?",
keep.source = getOption("keep.source"), srcfile,
encoding = "unknown")<p></p><p>str2lang(s)
str2expression(text)</p>
| Parameter | Deskripsi |
|---|---|
file |
a connection, or a character string giving the name of a file or a URL to read the expressions from. If file is "" and text is missing or NULL then input is taken from the console. |
n |
integer (or coerced to integer). The maximum number of expressions to parse. If n is NULL or negative or NA the input is parsed in its entirety. |
text |
character vector. The text to parse. Elements are treated as if they were lines of a file. Other R objects will be coerced to character if possible. |
prompt |
the prompt to print when parsing from the keyboard. NULL means to use R's prompt, getOption("prompt"). |
keep.source |
a logical value; if TRUE, keep source reference information. |
srcfile |
NULL, a character vector, or a srcfile object. See the ‘Details’ section. |
encoding |
encoding to be assumed for input strings. If the value is "latin1" or "UTF-8" it is used to mark character strings as known to be in Latin-1 or UTF-8: it is not used to re-encode the input. To do the latter, specify the encoding as part of the connection con or via options(encoding=): see the example under file. |
s |
a character vector of length 1, i.e., a “string”. |
# NOT RUN {
fil <- tempfile(fileext = ".Rdmped")
cat("x <- c(1, 4)\n x ^ 3 -10 ; outer(1:7, 5:9)\n", file = fil)
# parse 3 statements from our temp file
parse(file = fil, n = 3)
unlink(fil)
## str2lang(<string>) || str2expression(<character>) :
stopifnot(exprs = {
identical( str2lang("x[3] <- 1+4"), quote(x[3] <- 1+4))
identical( str2lang("log(y)"), quote(log(y)) )
identical( str2lang("abc" ), quote(abc) -> qa)
is.symbol(qa) & !is.call(qa) # a symbol/name, not a call
identical( str2lang("1.375" ), 1.375) # just a number, not a call
})
# A partial parse with a syntax error
txt <- "
x <- 1
an error
"
sf <- srcfile("txt")
try(parse(text = txt, srcfile = sf))
getParseData(sf)
# }