[R] "if" within a function

Hong Ooi Hong.Ooi at iag.com.au
Thu Jun 21 07:49:42 CEST 2007


_______________________________________________________________________________________


R doesn't use the 'functionname = result' idiom to return a value from a
function. It looks like you're after:

aaa <- function(a)
{
    if(a == 1) return(1)
    if(a != 1) return(2)
}


or


aaa <- function(a)
{
    if(a == 1) 1
    else 2
}

see ?return



-- 
Hong Ooi
Senior Research Analyst, IAG Limited
388 George St, Sydney NSW 2000
+61 (2) 9292 1566
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Yuchen Luo
Sent: Thursday, 21 June 2007 3:28 PM
To: r-help at stat.math.ethz.ch
Subject: [R] "if" within a function

Dear Friends.
I found a puzzling phenomenon in R when you use 'if' within a function:

# defining a function aaa
aaa=function(a)
{if (a==1) {aaa=1};
 if (a!=1) {aaa=2}
 }

# using the function:
> b=20
> bbb=aaa(b)
> bbb
[1] 2
> typeof(bbb)
[1] "double"
>
>
> c=1
> ccc=aaa(c)
> ccc
NULL
> typeof(ccc)
[1] "NULL"

It seems that only the last 'if' phrase works. Is it an instrinsic
weakness
of R? Is there a way to get around it? ( I use 'elseif' to get around
this
when there are only two cases to choose from, but what if there are more
than two cases to choose from?)

Best
Yuchen

	[[alternative HTML version deleted]]

______________________________________________
R-help at stat.math.ethz.ch 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.

_______________________________________________________________________________________

The information transmitted in this message and its attachme...{{dropped}}



More information about the R-help mailing list