There is a function called Map that may be similar to map in other languages:
lapplyreturns a list of the same length as X, each element of which is the result of applying FUN to the corresponding element of X.do.callconstructs and executes a function call from a name or a function and a list of arguments to be passed to it.Mapapplies a function to the corresponding elements of given vectors…Mapis a simple wrapper tomapplywhich does not attempt to simplify the result, similar to Common Lisp’s mapcar (with arguments being recycled, however). Future versions may allow some control of the result type.
Mapis a wrapper aroundmapplylapplyis a special case ofmapply- Therefore
Mapandlapplywill be similar in many cases.
For example, here is lapply:
lapply(iris, class) $Sepal.Length [1] "numeric" $Sepal.Width [1] "numeric" $Petal.Length [1] "numeric" $Petal.Width [1] "numeric" $Species [1] "factor"
And the same using Map:
Map(class, iris) $Sepal.Length [1] "numeric" $Sepal.Width [1] "numeric" $Petal.Length [1] "numeric" $Petal.Width [1] "numeric" $Species [1] "factor"
do.call takes a function as input and splatters its other arguments to the function. It is widely used, for example, to assemble lists into simpler structures (often with rbind or cbind).
For example:
x <- lapply(iris, class) do.call(c, x) Sepal.Length Sepal.Width Petal.Length Petal.Width Species "numeric" "numeric" "numeric" "numeric" "factor"