[R] For loop with if else statement

Hans Ole Ørka hans-ole.orka at umb.no
Tue Sep 4 15:59:54 CEST 2007


Hi,
I try to make a simple for loop with a if else statement (First example - Below) and extend it to a more complex loop (Second example). However, my results

#First example:
x=c(1,2)
t=for(i in 1:length(x)){
if (x==1){a=x+1}else
if (x==2){a=x}
}

Returned from R:
Warning messages:
1: the condition has length > 1 and only the first element will be used in: if (x == 1) {
2: the condition has length > 1 and only the first element will be used in: if (x == 1) {
> t
[1] 2 3

However, the result i had liked to get was t=c(2,2) i.e. using the first function (a=x+1) for x[1] and (a=x) for x[2]. I can remove the Warnings by making: if (x[i]==1) etc. but this do not make the results any better.


#Second example:
x=c(1,2)
t<-for(i in 1:length(x)){
        if (x==1){
                a=x
                b=x-1}else
        if (x==2){
                a=x+1
                b=x}
b<-list(a=a,b=b)
}

Returned from R:
Warning messages:
1: the condition has length > 1 and only the first element will be used in: if (x == 1) {
2: the condition has length > 1 and only the first element will be used in: if (x == 1) {
> t
$a
[1] 1 2

$b
[1] 0 1

The result i like to get are $a =c(1,3) and $b=c(0,2)

Probably there are couple of things that I do wrong and I appreciate all help!



More information about the R-help mailing list