Permutations

View: New views
3 Messages — Rating Filter:   Alert me  

Permutations

by Elke Moons :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear R-users,

 

 

Is there an easy way to determine all possible vectors of length 21 with
each entry having permutations from 0 to 4, instead of doing it like this?
It really takes up too much time, and I am convinced that there exists
something easier.

Can you help me? Thank you in advance!

Kind regards,

 

 

Elke

 

for (a in 0:4){

for (b in 0:4){

for (c in 0:4){

for (d in 0:4){

for (e in 0:4){

for (f in 0:4){

for (g in 0:4){

for (h in 0:4){

for (i in 0:4){

for (j in 0:4){

for (k in 0:4){

for (l in 0:4){

for (m in 0:4){

for (n in 0:4){

for (o in 0:4){

for (p in 0:4){

for (q in 0:4){

for (r in 0:4){

for (s in 0:4){

for (u in 0:4){

for (v in 0:4){

vec<-list(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v)

write.table(vec,file="C:/Documents and Settings/My
Documents/permutations.txt",sep=";",col.names=FALSE, row.names=FALSE,
append=TRUE)

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

 

____________________________

Elke Moons, PhD

Transportation Research Institute/

Instituut voor Mobiliteit (IMOB)

Wetenschapspark 1, bus 15

3590 Diepenbeek

BELGIUM

Tel. +32-11-26.91.26

Fax. +32-11-26.91.99

E-mail: elke.moons@...

 


        [[alternative HTML version deleted]]

______________________________________________
R-help@... 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.

Re: Permutations

by ONKELINX, Thierry :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear Elke,

I think you need something like this. It's only for 3 variables, but I
think you know how to expand it for more variables.

mat <- expand.grid(a = 0:4, b = 0:4, c = 0:4)
write.table(mat, file="C:/Documents and Settings/My
Documents/permutations.txt",sep=";",col.names=FALSE, row.names=FALSE)

HTH,

Thierry


------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx@...
www.inbo.be

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to
say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey

-----Oorspronkelijk bericht-----
Van: r-help-bounces@... [mailto:r-help-bounces@...]
Namens Elke Moons
Verzonden: dinsdag 13 mei 2008 9:49
Aan: r-help@...
Onderwerp: [R] Permutations

Dear R-users,





Is there an easy way to determine all possible vectors of length 21 with
each entry having permutations from 0 to 4, instead of doing it like
this?
It really takes up too much time, and I am convinced that there exists
something easier.

Can you help me? Thank you in advance!

Kind regards,





Elke



for (a in 0:4){

for (b in 0:4){

for (c in 0:4){

for (d in 0:4){

for (e in 0:4){

for (f in 0:4){

for (g in 0:4){

for (h in 0:4){

for (i in 0:4){

for (j in 0:4){

for (k in 0:4){

for (l in 0:4){

for (m in 0:4){

for (n in 0:4){

for (o in 0:4){

for (p in 0:4){

for (q in 0:4){

for (r in 0:4){

for (s in 0:4){

for (u in 0:4){

for (v in 0:4){

vec<-list(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v)

write.table(vec,file="C:/Documents and Settings/My
Documents/permutations.txt",sep=";",col.names=FALSE, row.names=FALSE,
append=TRUE)

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}

}



____________________________

Elke Moons, PhD

Transportation Research Institute/

Instituut voor Mobiliteit (IMOB)

Wetenschapspark 1, bus 15

3590 Diepenbeek

BELGIUM

Tel. +32-11-26.91.26

Fax. +32-11-26.91.99

E-mail: elke.moons@...




        [[alternative HTML version deleted]]

______________________________________________
R-help@... 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.

______________________________________________
R-help@... 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.

Parent Message unknown Re: Permutations

by Stephan Kolassa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Elke,

the matrix you are trying to create has 5^21 = 476837158203125 rows and 21 columns. I'm afraid Thierry's proposal with n=21 will not fit into memory. And the file you are writing is 5^21*5*8 bytes big, about 80108643 GB.

Perhaps you want to think a little more about what you are trying to achieve and, e.g., consider random sampling from the matrix?

In addition, look at your code: you append every single line to the output file, i.e., you open and close your file 5^21 = 476837158203125 times. File I/O always takes a lot of time. File I/O in a loop usually leads to slow execution.

HTH,
Stephan



ONKELINX, Thierry schrieb:

> Dear Elke,
>
> I think you need something like this. It's only for 3 variables, but I
> think you know how to expand it for more variables.
>
> mat <- expand.grid(a = 0:4, b = 0:4, c = 0:4)
> write.table(mat, file="C:/Documents and Settings/My
> Documents/permutations.txt",sep=";",col.names=FALSE, row.names=FALSE)
>
> HTH,
>
> Thierry

> Van: r-help-bounces@... [mailto:r-help-bounces@...]
> Namens Elke Moons
> Verzonden: dinsdag 13 mei 2008 9:49
> Aan: r-help@...
> Onderwerp: [R] Permutations
>
> Dear R-users,
>
>
>
>
>
> Is there an easy way to determine all possible vectors of length 21 with
> each entry having permutations from 0 to 4, instead of doing it like
> this?
> It really takes up too much time, and I am convinced that there exists
> something easier.
>
> Can you help me? Thank you in advance!
>
> Kind regards,
>
>
>
>
>
> Elke
>
>
>
> for (a in 0:4){
>
> for (b in 0:4){
>
> for (c in 0:4){
>
> for (d in 0:4){
>
> for (e in 0:4){
>
> for (f in 0:4){
>
> for (g in 0:4){
>
> for (h in 0:4){
>
> for (i in 0:4){
>
> for (j in 0:4){
>
> for (k in 0:4){
>
> for (l in 0:4){
>
> for (m in 0:4){
>
> for (n in 0:4){
>
> for (o in 0:4){
>
> for (p in 0:4){
>
> for (q in 0:4){
>
> for (r in 0:4){
>
> for (s in 0:4){
>
> for (u in 0:4){
>
> for (v in 0:4){
>
> vec<-list(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v)
>
> write.table(vec,file="C:/Documents and Settings/My
> Documents/permutations.txt",sep=";",col.names=FALSE, row.names=FALSE,
> append=TRUE)
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }
>
> }

--

______________________________________________
R-help@... 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.