Hello, Pablo,

if() doesn't accept a vector as its argument the way you may want it to; take a look at ifelse().

 Regards  --  Gerrit


On Tue, 3 Aug 2010, Pablo Cerdeira wrote:

Hi All,

I'm trying to run the following script in R, but I'm getting a warning saying:

Warning message:
In if (z < 0) { :
 the condition has length > 1 and only the first element will be used

As you can see, I'm sending a vector x to the function f without any
problem. The function f calculates the y value for each x.

But the function f needs to convert the x to positive values (the mod
function). And when it tries to convert, it always uses the first
value of x.

What I'm doing wrong here?

mod = function(x) {
 if (x < 0) {
   mod <- x*(-1)
 }
 else {
   mod <- x
 }
}
f = function(x) {
 f <- mod(x)/x
}
x <- seq(-1,1,0.01)
x
y <- f(x)
y
plot(f,xlim = c(-1,1))
remove(x,y,f,mod)

best regards,

--
Pablo de Camargo Cerdeira
pa...@fgv.br
pablo.cerde...@gmail.com
+55 (21) 3799-6065

______________________________________________
R-help@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.


---------------------------------------------------------------------
AOR Dr. Gerrit Eichner               Mathematical Institute, Room 212
gerrit.eich...@math.uni-giessen.de   Justus-Liebig-University Giessen
Tel: +49-(0)641-99-32104          Arndtstr. 2, 35392 Giessen, Germany
Fax: +49-(0)641-99-32109              http://www.uni-giessen.de/~gcb7

______________________________________________
R-help@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.

Reply via email to