使用expand.grid后反向词典顺序

时间:2013-01-03 00:52:52

标签: r permutation

我正在尝试基于多项框架生成以下矩阵。例如,如果我有三列,我会得到:

0 0 0
1 0 0
0 1 0
0 0 1
1 1 0
1 0 1
0 1 1
1 1 1

但是,我想要更多的专栏。我知道我可以使用expand.grid,如:

u <- list(0:1)
expand.grid(rep(u,3))

但是,它以错误的顺序返回我想要的内容:

0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:4)

您可以对行重新排序以符合预期输出:

u <- list(0:1)
g <- expand.grid(rep(u,3))
g <- g[order(rowSums(g)), ]