ID EN
String Functions

substitute

R Base 3.6.2 🇮🇩 Bahasa Indonesia

pengganti mengembalikan pohon parse untuk ekspresi expr (tidak dievaluasi), menggantikan variabel apa pun yang terikat dalam env. quote hanya mengembalikan argumennya. Argumennya tidak dievaluasi dan dapat berupa ekspresi R apa pun. enquote adalah utilitas satu baris sederhana yang mengubah panggilan bentuk Foo(....) menjadi panggilan kutipan(Foo(....)). Ini biasanya digunakan untuk melindungi panggilan dari evaluasi awal.

Syntax

R
substitute(expr, env)
quote(expr)
enquote(cl)

Arguments

Parameter Deskripsi
expr any syntactically valid R expression
cl a call, i.e., an R object of class (and mode) "call".
env an environment or a list object. Defaults to the current evaluation environment.

Return Value

Modus hasil umumnya adalah "panggilan" tetapi pada prinsipnya dapat berupa jenis apa pun. Secara khusus, ekspresi variabel tunggal memiliki mode "nama" dan konstanta memiliki mode dasar yang sesuai.

Details

Penggunaan pengganti pada umumnya adalah untuk membuat label informatif untuk kumpulan data dan plot. Contoh myplot di bawah menunjukkan penggunaan sederhana fasilitas ini. Ia menggunakan fungsi deparse dan pengganti untuk membuat label pada plot yang merupakan versi string karakter dari argumen sebenarnya ke fungsi myplot. Substitusi terjadi dengan memeriksa setiap komponen pohon parse sebagai berikut: Jika ini bukan simbol terikat di env, maka tidak berubah. Jika itu adalah objek janji, yaitu argumen formal ke suatu fungsi atau secara eksplisit dibuat menggunakan penundaanAssign(), slot ekspresi janji akan menggantikan simbol. Jika itu adalah variabel biasa, nilainya diganti, kecuali env adalah .GlobalEnv dalam hal ini simbolnya tidak diubah. Baik kutipan maupun pengganti adalah fungsi primitif 'khusus' yang

Contoh

Example
R
# NOT RUN {
require(graphics)
(s.e <- substitute(expression(a + b), list(a = 1)))  #> expression(1 + b)
(s.s <- substitute( a + b,            list(a = 1)))  #> 1 + b
c(mode(s.e), typeof(s.e)) #  "call", "language"
c(mode(s.s), typeof(s.s)) #   (the same)
# but:
(e.s.e <- eval(s.e))          #>  expression(1 + b)
c(mode(e.s.e), typeof(e.s.e)) #  "expression", "expression"

substitute(x <- x + 1, list(x = 1)) # nonsense

myplot <- function(x, y)
    plot(x, y, xlab = deparse(substitute(x)),
         ylab = deparse(substitute(y)))

## Simple examples about lazy evaluation, etc:

f1 <- function(x, y = x)             { x <- x + 1; y }
s1 <- function(x, y = substitute(x)) { x <- x + 1; y }
s2 <- function(x, y) { if(missing(y)) y <- substitute(x); x <- x + 1; y }
a <- 10
f1(a)  # 11
s1(a)  # 11
s2(a)  # a
typeof(s2(a))  # "symbol"
# }

See Also

missing for argument ‘missingness’ bquote for partial substitution sQuote and dQuote for adding quotation marks to strings all.names to retrieve the symbol names from an expression or call.