Re: [R] Permutations

From: Stephan Kolassa <Stephan.Kolassa_at_gmx.de>
Date: Tue, 13 May 2008 10:30:38 +0200


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@r-project.org [mailto:r-help-bounces@r-project.org]
> Namens Elke Moons
> Verzonden: dinsdag 13 mei 2008 9:49
> Aan: r-help_at_r-project.org
> 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_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.
Received on Tue 13 May 2008 - 08:51:52 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 13 May 2008 - 09:30:36 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive