[R] Nested For Loop

David Winsemius dwinsemius at comcast.net
Fri Jun 29 16:40:15 CEST 2012


On Jun 28, 2012, at 5:03 PM, arun.gurubaramurugeshan wrote:

> I am creating a nested for loop and following are the codes I'm  
> using, but I
> am not acheiving what I want.
>
> I have a vector
>
> d<-151:159
>
> I have another vector
>
> e<-e<-c("apple", "orange", "banana")

>
> I need to create f as
> 151apple
> 151orange
> 151banana
> .
> .
> 159apple
> 159orange
> 159banana
>

I admit that I think Bert's solution is way kewler than mine, but I  
would not have thought of using interaction() to mimic the "crossed"  
use of rep()

paste(as.character(rep(d, each=length(e))), rep(e, times=length(d) ),  
sep="")

(Looking at the code for interaction one sees that this is how it was  
coded.)

The other R functions to remember for this sort of loop-avoidance are  
'outer' and 'expand.grid'.

 > outer(d,e,paste, sep="")
      [,1]       [,2]        [,3]
[1,] "151apple" "151orange" "151banana"
[2,] "152apple" "152orange" "152banana"
[3,] "153apple" "153orange" "153banana"
[4,] "154apple" "154orange" "154banana"
[5,] "155apple" "155orange" "155banana"

as.vector( outer(d, e, paste, sep="") )

-- 
David.


> Here is how I wrote nested for loop...
>
> for (i in 1:length(d))
> { for (j in 1:length(e))
> {
> x[j]<-paste(d[i],e[j],sep="")
> print(x[j])
> }
> }
>
> The result of the above codes is....
>
>> for (i in 1:length(d))
> + { for (j in 1:length(e))
> + {
> + x[j]<-paste(d[i],e[j],sep="")
> + print(x[j])
> + }
> + }
> [1] "151apple"
> [1] "151orange"
> [1] "151banana"
>>
>
>
> What do I need to do this looping produce the desired result.
>
> Thanks
> Arun
> ----
>
>
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Nested-For-Loop-tp4634804.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list