ID EN
Vector & List

rapply

R Base 3.6.2 🇮🇩 Bahasa Indonesia

rapply adalah versi rekursif dari lapply dengan fleksibilitas dalam bagaimana hasilnya disusun (how = "..").

Syntax

R
rapply(object, f, classes = "ANY", deflt = NULL,
       how = c("unlist", "replace", "list"), ...)

Arguments

Parameter Deskripsi
object a list or expression, i.e., “list-like”.
f a function of one “principal” argument, passing further arguments via ….
classes character vector of class names, or "ANY" to match any class.
deflt The default result (not used if how = "replace").
how character string partially matching the three possibilities given: see ‘Details’.
… additional arguments passed to the call to f.

Return Value

Jika how = "unlist", sebuah vektor, jika tidak, "seperti daftar" dengan struktur yang mirip dengan objek.

Details

Fungsi ini memiliki dua mode dasar. Jika how = "replace", setiap elemen objek yang tidak seperti daftar dan memiliki kelas yang termasuk dalam kelas akan digantikan oleh hasil penerapan f pada elemen tersebut. Jika tidak, dengan mode how = "list" atau how = "unlist", secara konseptual objek disalin, semua elemen non-daftar yang memiliki kelas yang termasuk dalam kelas digantikan oleh hasil penerapan f pada elemen dan yang lainnya diganti dengan deflt. Terakhir, jika how = "unlist", unlist(recursive = TRUE) dipanggil pada hasilnya. Semantiknya berbeda secara detail dari lapply: khususnya argumen dievaluasi sebelum memanggil kode C. Di R 3.5.x dan sebelumnya, objek harus berupa daftar, tidak demikian halnya dengan komponen yang mirip daftar.

Contoh

Example
R
# NOT RUN {
X <- list(list(a = pi, b = list(c = 1L)), d = "a test")
# the "identity operation":
rapply(X, function(x) x, how = "replace") -> X.; stopifnot(identical(X, X.))
rapply(X, sqrt, classes = "numeric", how = "replace")
rapply(X, deparse, control = "all") # passing extras. argument of deparse()
rapply(X, nchar, classes = "character", deflt = NA_integer_, how = "list")
rapply(X, nchar, classes = "character", deflt = NA_integer_, how = "unlist")
rapply(X, nchar, classes = "character",                      how = "unlist")
rapply(X, log, classes = "numeric", how = "replace", base = 2)

## with expression() / list():
E  <- expression(list(a = pi, b = expression(c = C1 * C2)), d = "a test")
LE <- list(expression(a = pi, b = expression(c = C1 * C2)), d = "a test")
rapply(E, nchar, how="replace") # "expression(c = C1 * C2)" are 23 chars
rapply(E, nchar, classes = "character", deflt = NA_integer_, how = "unlist")
rapply(LE, as.character) # a "pi" | b1 "expression" | b2 "C1 * C2" ..
rapply(LE, nchar)        # (see above)
stopifnot(exprs = {
  identical(E , rapply(E , identity, how = "replace"))
  identical(LE, rapply(LE, identity, how = "replace"))
})
# }

See Also

lapply dendrapply.