2013-02-03 110 views
1

我有一個使用expand.grid()生成的矩陣列表。按列數排序的矩陣排序列表

myarray=matrix(rexp(200),10,3) 
list.of.matrices <- apply(expand.grid(rep(list(c(FALSE, TRUE)), ncol(myarray))), 
           1, function(j)myarray[, j, drop = FALSE]) 

當我使用的命令

myarray.dim=sapply(myarray, ncol) 

我注意到,在順序,我需要的不是生成的列表。如果可能的話,我想讓他們從1列開始到3。

回答

2

是否這樣?

lapply(order(sapply(list.of.matrices,ncol)),function(i) list.of.matrices[[i]]) 

您的列表有一個零列條目。

+0

這很棒,它正是我所需要的。你知道爲什麼這個零列條目生成嗎? – nopeva

+0

@ user1228124查看'expand.grid(rep(list(c(FALSE,TRUE)),ncol(myarray)))'的輸出。 – Roland

+3

或只是'list.of.mat [命令(sapply(list.of.mat,ncol))]' – flodel