[R] Plotting a function that includes logical operators
Duncan Murdoch
murdoch.duncan at gmail.com
Wed Jul 27 20:08:59 CEST 2011
On 27/07/2011 9:21 AM, dean123 wrote:
> Hi David,
>
> I am trying to define t as a single numeric value and not as a vector.. I
> want the function to realise that if I call test(t) and t is less than equal
> 10 return zero, if t greater than 10 return 2*t. Am i missing some code in
> which to define t a numeric value instead of a vector?
>
> Also, I thought that by defining test<- function(t) {...} I was defining t
> as the argument of the function?
The problem is that your function will be called with a vector of values
for t (by plot(), or some function plot() calls). This is very common
in R, and if you want other functions to work well with yours, you
should handle it.
A quick and dirty workaround is to define test as you did, then call
test2 <- Vectorize(test)
The Vectorize() function creates a new function which we name test2 that
will call test() in a loop. Usually you don't want to do this because
it's not very efficient compared to many other solutions, but it's easy
to do.
Duncan Murdoch
More information about the R-help
mailing list