私は、2つの異なる値を含むベクトルのすべての可能な順列を作成したいと考えています。R-値の固有の順列を見つける
私は長さ3のベクトルを持っていると私は、単一の1を含むすべての可能な組み合わせをしたい場合たとえば、私の所望の出力はこのように見ているリストである:これとは対照的に
list.1 <- list(c(1,0,0), c(0,1,0), c(0,0,1))
、私はすべてしたい場合3 1Sを含む可能性のある組み合わせ、私の所望の出力はこのように見ているリストです。別の言い方をする
list.3 <- list(c(1,1,1))
、1
と0
値のパターンは重要ではなく、すべての1
sがtreateする必要がありますdは他のすべてと同一である。
ここで、他の場所検索に基づいて、私はいくつかのアプローチを試みた:有望と思われるcombinat
パッケージから機能permn
を使用して、だから、
expand.grid(0:1, 0:1, 0:1) # this includes all possible combinations of 1, 2, or 3 ones
permn(c(0,1,1)) # this does not treat the ones as identical (e.g. it produces (0,1,1) twice)
unique(permn(c(0,1,1))) # this does the job!
を。私は私の実際の問題(50%の1と50%の0で長さ20のベクトル、これをスケールアップどこしかし、私は問題に実行:
unique(permn(c(rep(1,10), rep(0, 10))))
# returns the error:
Error in vector("list", gamma(n + 1)) :
vector size specified is too large
私の理解では、この中で、理由は何が起こっているということですpermn
に呼び出して、それはそれらの多くは同じであっても、すべての可能な順列を含むリストを作成し、このリストはRが処理するには大きすぎる。
誰もこれを回避する方法のための提案を持っていますか?
申し訳ありませんがこれまでに答えられている - 類似した言語を含むが、異なるpの質問がたくさんあります私のニーズを満たすソリューションを見つけることができませんでした!
[この](http://stackoverflow.com/a/28368933/3184024)これは、所望の出力を生成しません – wici