# Re: [R] Learning, "if" and "else"

From: Mwalili, S. M. <samuel_mwalili_at_yahoo.com>
Date: Tue 14 Jun 2005 - 05:51:16 EST

This may be of help

dat <-
data.frame(dbh = c(30,
29 , 28, 27, 26, 25, 24, 23, 22,

```  21,   20,   15,   14,   13,  12,  11,  10,
9,   8,   7,   6,   5,  30,  29,  28,  27,
26,  25,  24,  23,  22,  21,  20),
```

form = c( "tree", "tree", "tree", "tree", "tree", "tree",
``` "tree", "tree", "tree", "tree", "tree","liana","liana",
"liana","liana","liana","liana","liana","liana","liana",
"liana","liana", "palm", "palm", "palm", "palm", "palm",
"palm", "palm", "palm", "palm", "palm", "palm"))
```
attach(dat)
```ans <-  ifelse(form == "tree",
exp(-4.898+4.512*log(dbh)-0.319*(log(dbh))^2), NA)
ans <-  ifelse(form == "liana",
10^(0.07 + 2.17 * log10 (dbh)), ans)

```

data.frame(form,ans)

Samuel

Paulo Brando <pmbrando@ipam.org.br> wrote:

I have tried to use conditional expressions to calculate biomass for different life forms (trees, lianas, and palms).

Here is an example:

> lifeform

dbh form
1 30 tree
2 29 tree
3 28 tree
4 27 tree
5 26 tree
6 25 tree
7 24 tree
8 23 tree
9 22 tree
10 21 tree
11 20 tree
12 15 liana
13 14 liana
14 13 liana
15 12 liana
16 11 liana
17 10 liana
18 9 liana
19 8 liana
20 7 liana
21 6 liana
22 5 liana
23 30 palm
24 29 palm
25 28 palm
26 27 palm
27 26 palm
28 25 palm
29 24 palm
30 23 palm
31 22 palm
32 21 palm
33 20 palm

### I want to include biomass

lifeform\$biomass <-

{
if(lifeform\$form=="tree")
exp(-4.898+4.512*log(dbh)-0.319*(log(dbh))^2) else{

if (lifeform\$form=="liana")
10^(0.07 + 2.17 * log10 (dbh))
else ("NA")
}
Warning message:
the condition has length > 1 and only the first element will be used in: if (lifeform\$form == "tree") exp(-4.898 + 4.512 * log(dbh) -

### But I always get the message warning message above.

I looked for similar examples in R mail list archive, but they did not help a lot.

I am quite new to 'R'. Any material that covers this theme?

Thank you very much!

Paulo

PS. Sorry about the last e-mail. I did not change the message title.

Paulo M. Brando
Instituto de Pesquisa Ambiental da Amazonia (IPAM) Santarem, PA, Brasil.
Av. Rui Barbosa, 136.
Fone: + 55 93 522 55 38
www.ipam.org.br
E-mail: pmbrando@ipam.org.br

R-help@stat.math.ethz.ch mailing list