[R] Function not returning a vector?

Achim Zeileis Achim.Zeileis at wu-wien.ac.at
Thu Aug 28 20:48:04 CEST 2008



On Thu, 28 Aug 2008, rkevinburton at charter.net wrote:

> Why does:
>
> (shape/scale) * (1:365/scale)^(shape - 1)
>
> return a vector of numbers but calling a function
>
> hasard(1:365,shape,scale)
>
> defined like:
>
> hazard <- function(x,shape,scale)
> {
>   return (shape/scale) * (x/scale)^(shape - 1)
     ^^^^^^^^^^^^^^^^^^^^

return() is a function, its argument is returned, everything afterwards is 
ignored. And shape/scalar is probably a scalar in your case...

So either change to

     return((shape/scale) * (x/scale)^(shape - 1))

or simply

            (shape/scale) * (x/scale)^(shape - 1)

without explicitely calling return().

> }
>
> Only return a single value? It is like x becomes a single value passed as an argument.
>
> Thank you.
>
> Kevin
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list