lapply mengembalikan daftar dengan panjang yang sama dengan X, setiap elemennya merupakan hasil penerapan FUN ke elemen X yang bersangkutan. sapply adalah versi yang mudah digunakan dan pembungkus lapply secara default mengembalikan vektor, matriks atau, jika sederhanakan = "array", sebuah larik jika sesuai, dengan menerapkan simplify2array(). sapply(x, f, simplify = FALSE, USE.NAMES = FALSE) sama dengan lapply(x, f). vapply mirip dengan sapply, namun memiliki jenis nilai pengembalian yang telah ditentukan sebelumnya, sehingga lebih aman (dan terkadang lebih cepat) untuk digunakan. replikasi adalah pembungkus untuk penggunaan umum sapply untuk evaluasi ekspresi berulang (yang biasanya melibatkan pembuatan angka acak). simplify2array() adalah utilitas yang dipanggil dari sapply() ketika penyederhanaan tidak salah dan juga dipanggil dari mapply().
lapply(X, FUN, …)<p></p><p>sapply(X, FUN, …, simplify = TRUE, USE.NAMES = TRUE)</p><p>vapply(X, FUN, FUN.VALUE, …, USE.NAMES = TRUE)</p><p>replicate(n, expr, simplify = "array")</p><p>simplify2array(x, higher = TRUE)</p>
| Parameter | Deskripsi |
|---|---|
X |
a vector (atomic or list) or an expression object. Other objects (including classed objects) will be coerced by base::as.list. |
FUN |
the function to be applied to each element of X: see ‘Details’. In the case of functions like +, %*%, the function name must be backquoted or quoted. |
… |
optional arguments to FUN. |
simplify |
logical or character string; should the result be simplified to a vector, matrix or higher dimensional array if possible? For sapply it must be named and not abbreviated. The default value, TRUE, returns a vector or matrix if appropriate, whereas if simplify = "array" the result may be an array of “rank” (\(=\)length(dim(.))) one higher than the result of FUN(X[[i]]). |
USE.NAMES |
logical; if TRUE and if X is character, use X as names for the result unless it had names already. Since this argument follows … its name cannot be abbreviated. |
FUN.VALUE |
a (generalized) vector; a template for the return value from FUN. See ‘Details’. |
n |
integer: the number of replications. |
expr |
the expression (a language object, usually a call) to evaluate repeatedly. |
x |
a list, typically returned from lapply(). |
higher |
logical; if true, simplify2array() will produce a (“higher rank”) array when appropriate, whereas higher = FALSE would return a matrix (or vector) only. These two cases correspond to sapply(*, simplify = "array") or simplify = TRUE, respectively. |
# NOT RUN {
require(stats); require(graphics)
x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE))
# compute the list mean for each list element
lapply(x, mean)
# median and quartiles for each list element
lapply(x, quantile, probs = 1:3/4)
sapply(x, quantile)
i39 <- sapply(3:9, seq) # list of vectors
sapply(i39, fivenum)
vapply(i39, fivenum,
c(Min. = 0, "1st Qu." = 0, Median = 0, "3rd Qu." = 0, Max. = 0))
## sapply(*, "array") -- artificial example
(v <- structure(10*(5:8), names = LETTERS[1:4]))
f2 <- function(x, y) outer(rep(x, length.out = 3), y)
(a2 <- sapply(v, f2, y = 2*(1:5), simplify = "array"))
a.2 <- vapply(v, f2, outer(1:3, 1:5), y = 2*(1:5))
stopifnot(dim(a2) == c(3,5,4), all.equal(a2, a.2),
identical(dimnames(a2), list(NULL,NULL,LETTERS[1:4])))
hist(replicate(100, mean(rexp(10))))
## use of replicate() with parameters:
foo <- function(x = 1, y = 2) c(x, y)
# does not work: bar <- function(n, ...) replicate(n, foo(...))
bar <- function(n, x) replicate(n, foo(x = x))
bar(5, x = 3)
# }