[R] Modifying the embed-results

Atte Tenkanen attenka at utu.fi
Sat Aug 26 08:13:47 CEST 2006


Again my example was't very clear: there were not enough same numbers in the VECTOR.
What I need is something like this:

VECTOR<-c(0,3,6,3,11,2,11,4,3,4,7,7,6,4,8)
MATRIX<-c()
for(i in 1:length(VECTOR)){
	v<-(unique(VECTOR[i:length(VECTOR)])[1:5])
	MATRIX<-rbind(MATRIX,v)
}

MATRIX<-na.omit(MATRIX)
MATRIX

> data.frame(MATRIX, row.names=NULL)
  X1 X2 X3 X4 X5
1       0  3  6 11  2
2       3  6 11  2  4
3       6  3 11  2  4
4       3 11  2  4  7
5      11  2  4  3  7
6       2 11  4  3  7
7      11  4  3  7  6
8       4  3  7  6  8
9       3  4  7  6  8

So, there are no duplicates in rows. 
VECTOR is always scanned forward as long as the number of  items (here 5) becomes full.

Atte

> Try:
> 
> embed(VECTOR, 5)[,5:1]
> 
> On 8/25/06, Atte Tenkanen <attenka at utu.fi> wrote:
> > Hi,
> >
> > Here is a vector and the result from the embed-command:
> >
> > VECTOR=c(0,3,6,3,11,2,4,3,7,6,4,5,10,2,3,5,8)
> >
> > > embed(VECTOR, dimension=5)
> >      [,1] [,2] [,3] [,4] [,5]
> >  [1,]   11    3    6    3    0
> >  [2,]    2   11    3    6    3
> >  [3,]    4    2   11    3    6
> >  [4,]    3    4    2   11    3
> >  [5,]    7    3    4    2   11
> >  [6,]    6    7    3    4    2
> >  [7,]    4    6    7    3    4
> >  [8,]    5    4    6    7    3
> >  [9,]   10    5    4    6    7
> > [10,]    2   10    5    4    6
> > [11,]    3    2   10    5    4
> > [12,]    5    3    2   10    5
> > [13,]    8    5    3    2   10
> >
> > Is there a way to little modify the algorithm so that the result 
> looks> like this:
> >
> > [1]  0  3  6 11  2 <- beginning from the first number of the VECTOR
> > [1]  3  6 11  2  4 <- beginning from the second number of the 
> VECTOR etc
> > [1]  6  3 11  2  4
> > [1]  3 11  2  4  7
> > [1] 11  2  4  3  7
> > [1] 2 4 3 7 6
> > [1] 4 3 7 6 5
> > [1] 3 7 6 4 5
> > [1]  7  6  4  5 10
> > [1]  6  4  5 10  2
> > [1]  4  5 10  2  3
> > [1]  5 10  2  3  8
> > [1] 10  2  3  5  8
> >
> > Every row consists of next five unique(!) member of the VECTOR. I 
> made> this example result with a time consuming algorithm which 
> uses for-loops
> > and whiles.
> >
> > How to do this better??
> >
> > Thanks in advance!
> >
> > Atte Tenkanen
> > University of Turku
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch 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.
> >
>



More information about the R-help mailing list