[R] Help with for loop

David Winsemius dwinsemius at comcast.net
Mon Sep 14 21:16:44 CEST 2009


On Sep 14, 2009, at 3:02 PM, Jorge Ivan Velez wrote:

> Hi Edward,
> Here is a suggestion:
>
> a = c(4,5,1,7,8,12,39)
> b = c(3,7,8,4,7,25,78)
> d <- a-b
> d[which(d>0)]
> # [1] 1 3 1

#Or even:
  d <- (a-b)[which((a-b)>0)]
  d
#[1] 1 3 1

>
> HTH,
> Jorge
>
>
> On Mon, Sep 14, 2009 at 2:50 PM, Edward Chen <edchen51 at gmail.com>  
> wrote:
>
>> I have a code:
>> *a = c(4,5,1,7,8,12,39)
>> b = c(3,7,8,4,7,25,78)
>> d =a-b
>> for(i in 1:length(d)){
>> if(d[i]>0){x = list(d[i])
>> print(x)}
>> else{y = list(d[i])
>> print(y)}}
>>
>> the results are:
>>
>> [[1]]
>> [1] 1
>>
>> [[1]]
>> [1] -2
>>
>> [[1]]
>> [1] -7
>>
>> [[1]]
>> [1] 3
>>
>> [[1]]
>> [1] 1
>>
>> [[1]]
>> [1] -13
>>
>> [[1]]
>> [1] -39
>>
>>
>> which will tell me what d is. but is it possible to output the  
>> order in
>> which the difference is in the vector d?
>> for example I would want to see x = 1,3,1 and they are from d[1],  
>> d[4],
>> d[5].
>> This is just a crude example I thought of to help me do something  
>> more
>> complicated.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list