# [R] help understanding why #function(x, y) (if((x-y)>=0) {2^(x-y)} else{-(2^abs(x-y))})# doesn't work like I think it should

From: ALAN SMITH <alansmith2_at_gmail.com>
Date: Tue, 03 Jun 2008 20:47:24 -0500
```#######################  Examples
#######################################################
```

## example 1 ###

x<-c(5,6,4,3,5,3,1)
y<-c(1,6,2,1,7,1,9)
folds<-function(x,y) (if((x-y)>=0) {2^(x-y)} else{-(2^abs(x-y))}) z<-folds(x,y)
check<-cbind(x,y,z)
View(check)

Warning message:
In if ((x - y) >= 0) { :
the condition has length > 1 and only the first element will be used  ### why will it only use the first element and how to I get around this ####

## example 2 making the fist comparison negative ###
x1<-c(5,6,4,3,5,3,1)
y1<-c(11,6,2,1,7,1,9)
folds<-function(x,y) (if((x-y)>=0) {2^(x-y)} else{-(2^abs(x-y))}) z1<-folds(x1,y1)
check2<-cbind(x1,y1,z1)
View(check2)
Warning message:
In if ((x - y) >= 0) { :
the condition has length > 1 and only the first element will be used

```################################################################################
```
#### loop I am trying to avoid writing many many times ##### folds2<-NULL
xy<-as.data.frame(cbind(x,y))
for (i in 1:nrow(xy)) {
diff<-xy\$x[i]-xy\$y[i]
folds2[i]<-if(diff>=0) {2^diff} else{-(2^abs(diff))} }
xyz<-cbind(xy,folds2)
View(xyz)
```#################

```

Thank you,
Alan

P.S. why does ?function not work

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. Received on Wed 04 Jun 2008 - 02:39:40 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 04 Jun 2008 - 04:30:38 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.