Aliases: Vectorize
### ** Examples # We use rep.int as rep is primitive vrep <- Vectorize(rep.int) vrep(1:4, 4:1)
[[1]] [1] 1 1 1 1 [[2]] [1] 2 2 2 [[3]] [1] 3 3 [[4]] [1] 4
vrep(times = 1:4, x = 4:1)
[[1]] [1] 4 [[2]] [1] 3 3 [[3]] [1] 2 2 2 [[4]] [1] 1 1 1 1
vrep <- Vectorize(rep.int, "times") vrep(times = 1:4, x = 42)
[[1]] [1] 42 [[2]] [1] 42 42 [[3]] [1] 42 42 42 [[4]] [1] 42 42 42 42
f <- function(x = 1:3, y) c(x, y) vf <- Vectorize(f, SIMPLIFY = FALSE) f(1:3, 1:3)
[1] 1 2 3 1 2 3
vf(1:3, 1:3)
[[1]] [1] 1 1 [[2]] [1] 2 2 [[3]] [1] 3 3
vf(y = 1:3) # Only vectorizes y, not x
[[1]] [1] 1 2 3 1 [[2]] [1] 1 2 3 2 [[3]] [1] 1 2 3 3
# Nonlinear regression contour plot, based on nls() example require(graphics) 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, length.out = 50) K <- seq(0, 0.15, length.out = 40) SSvals <- outer(Vm, K, vSS, Treated$rate, Treated$conc) contour(Vm, K, SSvals, levels = (1:10)^2, xlab = "Vm", ylab = "K")
# combn() has an argument named FUN combnV <- Vectorize(function(x, m, FUNV = NULL) combn(x, m, FUN = FUNV), vectorize.args = c("x", "m")) combnV(4, 1:4)
[[1]] [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [[2]] [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 1 1 2 2 3 [2,] 2 3 4 3 4 4 [[3]] [,1] [,2] [,3] [,4] [1,] 1 1 1 2 [2,] 2 2 3 3 [3,] 3 4 4 4 [[4]] [,1] [1,] 1 [2,] 2 [3,] 3 [4,] 4
combnV(4, 1:4, sum)
[[1]] [1] 1 2 3 4 [[2]] [1] 3 4 5 5 6 7 [[3]] [1] 6 7 8 9 [[4]] [1] 10