mply_dbl: apply function that always returns a numeric matrix

View source: R/util.R

mply_dblR Documentation

apply function that always returns a numeric matrix

Description

The function is modeled after 'vapply', but always returns a matrix with one row for each iteration. You need to provide the number of elements each function call produces beforehand (i.e. the number of resulting columns). For a more flexible version where you don't need to provide the number of columns see msply_dbl

Usage

mply_dbl(x, FUN, ncol = 1, ...)

msply_dbl(x, FUN, ...)

Arguments

x

a vector that will be passed to 'vapply' or a matrix that will be passed to apply with MARGIN=1.

FUN

the function that returns a vector of length ncol

ncol

the length of the vector returned by 'FUN'.

...

additional arguments to FUN

Value

a matrix of size length(x) x ncol

Functions

  • mply_dbl: apply function that always returns a numeric matrix

  • msply_dbl: flexible version that automatically infers the number of columns

Examples

  # Behaves similar to sapply(), but it always returns a matrix
  t(sapply(1:5, function(i) c(i - i/3, i, i + i/3)))
  proDA:::mply_dbl(1:5, function(i) c(i - i/3, i, i + i/3), ncol=3)

  # Which can avoid some bad surprises
  t(sapply(1:5, identity))
  proDA:::mply_dbl(1:5, identity)


  # Works also with matrix input
  mat <- matrix(1:20, ncol=4)
  mat
  proDA:::msply_dbl(mat, function(i) rep(i, each=2))



const-ae/proDA documentation built on Oct. 31, 2023, 9:39 p.m.