[R] Help with "For" instruction

David Winsemius dwinsemius at comcast.net
Tue Jan 4 08:47:28 CET 2011


On Jan 4, 2011, at 1:00 AM, ADias wrote:

>
> Hi,
>
> I am having a problem in doing something similar to this example:
>
> Suppose I have this vector a, and from it I wish to create 5 other  
> vector
> each one with less one value than what object a has
>
> So I have "a"
> a<-c(1,2,3,4,5)
>
> and I want
>
> a1 that shoud have (2,3,4,5)
> a2 that should have (1,3,4,5)
> a3 that should have (1,2,4,5)
> a4 that should have (1,2,3,5)
> a5 that should have (1,2,3,4)
>
> I have tried like this but with no luck
>
> For ( i in 1:5) {
> a<-c(1,2,3,4,5)
> a((i)<-a[-i]
> }
>
> Is there a way to do this?

Dan showed you a method using assign (since that is what is needed for  
what you asked for) but you would get a more flexible result if you  
used a structure that could be easily indexed such as a matrix or list:
 > A <- sapply(1:5, function(i) a[-i])
 > colnames(A) <- paste("a", 1:5, sep="")
 > A
      a1 a2 a3 a4 a5
[1,]  2  1  1  1  1
[2,]  3  3  2  2  2
[3,]  4  4  4  3  3
[4,]  5  5  5  5  4

So:
 > A[ ,"a1"]
[1] 2 3 4 5

>

-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list