| mapply {base} | R Documentation |
mapply is a multivariate version of sapply.
mapply applies FUN to the first elements of each ...
argument, the second elements, the third elements, and so on.
Arguments are recycled if necessary.
Vectorize returns a new function that acts as if mapply
was called.
mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE,
USE.NAMES = TRUE)
Vectorize(FUN, vectorize.args = arg.names, SIMPLIFY = TRUE,
USE.NAMES = TRUE)
FUN |
Function to apply, found via match.fun. |
... |
Arguments to vectorise over (list or vector). |
MoreArgs |
A list of other arguments to FUN. |
SIMPLIFY |
Attempt to reduce the result to a vector or matrix? |
USE.NAMES |
If the first ... argument is character and the result does not already have names, use it as the names. |
vectorize.args |
A character vector of arguments which should be
vectorized. Defaults to all arguments to FUN. |
The arguments named in the vectorize.args argument to
Vectorize correspond to the arguments passed in the ...
list to mapply. However, only those that are actually passed
will be vectorized; default values will not. See the example below.
mapply returns a list, vector, or matrix.
Vectorize returns a function with the same arguments as FUN,
but wrapping a call to mapply.
mapply(rep, 1:4, 4:1)
mapply(rep, times=1:4, x=4:1)
mapply(rep, times=1:4, MoreArgs=list(x=42))
# Repeat the same using Vectorize
vrep <- Vectorize(rep)
vrep(1:4, 4:1)
vrep(times=1:4, x=4:1)
vrep <- Vectorize(rep, "times")
vrep(times=1:4, x=42)
f <- function(x=1:3, y) c(x,y)
vf <- Vectorize(f, SIMPLIFY = FALSE)
f(1:3,1:3)
vf(1:3,1:3)
vf(y=1:3) # Only vectorizes y, not x
# Nonlinear regression contour plot, based on nls() example
SS <- function(Vm, K, resp, conc) {
pred <- (Vm * conc)/(K + conc)
sum((resp - pred)^2 / pred)
}
vSS <- Vectorize(SS, c("Vm", "K"))
Treated <- subset(Puromycin, state == "treated")
Vm <- seq(140, 310, len=50)
K <- seq(0, 0.15, len=40)
SSvals <- outer(Vm, K, vSS, Treated$rate, Treated$conc)
contour(Vm, K, SSvals, levels=(1:10)^2, xlab="Vm", ylab="K")