Re: [R] Vectorizing a function: what does it mean?

From: Duncan Murdoch <>
Date: Mon, 09 May 2011 14:33:03 -0400

On 09/05/2011 11:57 AM, Ron Michael wrote:
> Dear all, I would really appreciate if somebody can help me to understand what does the phrase "Vectorize your function" mean? And what is the job of Vectorize() function in doing that? I have read many threads where experts suggest to Vectorize the function, which will speed up entire calculation (and more elegant ofcourse.)
> I used to think that vectorizing function means, to create a function such a way so that if input(s) are vector then this function will also return a vector output (without having any extra effort like use of 'for' loop etc.) Is this understanding correct?

That's correct.
> Here I have tried 2 essentially similar functions:
> > fn1<- function(x,y,z) return(x+y+z)
> > fn2<- Vectorize(function(x,y,z) return(x+y+z), SIMPLIFY=TRUE)
> > fn1(1:3, 4:6,5)
> [1] 10 12 14
> > fn2(1:3, 4:6,5)
> [1] 10 12 14
> You see that, fn1() and fn2() is giving same answer (vectorized?) despite of the fact that fn1() is not wrapped within Vectorize() function. Therefore I want to know: what additional thing this Vectorize() function brings on the table?

Addition is already vectorized, so Vectorize does nothing but slow down your function. In other cases it is more helpful. For example, if you wanted to compute the residual sum of squares from fitting a mean to a vector of data, you might write

y <- rnorm(100) # some fake data
RSS <- function(mu) sum( (y-mu)^2 )

That works only if mu is a scalar, but Vectorize(RSS) would work for a vector of mu values.

Duncan Murdoch mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Mon 09 May 2011 - 18:36:27 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 09 May 2011 - 18:40:06 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive