2016-07-22 12 views
0

は、私はこのような拡張グリッド機能への各要素を渡したいのですが、(私の状況では、リスト内の要素の数が可変である)私はリストを持っているとリストの各要素をRの別の関数の引数として渡すには?

tmp=c('X1','X2','X3','X4') 

tmp1=expand.grid(X1=c(0,1),X2=c(0,1),X3=c(0,1),X4=c(0,1)) 

ここで各要素は値0と1を取ることができます。これをどのように達成できますか?

ありがとうございました。

+0

@mackbox注意として列名。 – lmo

答えて

1

我々はlistとして「tmp」のvectorの要素の値を取得するためにmgetを使用し、expand.gridでそれをラップすることができます。

expand.grid(mget(tmp)) 

あるいは、これらのオブジェクトではなく、列名が、我々はexpand.gridを作成する必要がある場合は、「tmp」ののlengthことによってそれを複製、listにベクトルc(0,1)を配置

は、 expand.gridを行うと、設定します( setNames付き)「tmp」のあなたはそれがあなたのために働いている、前の質問への回答のいずれかを受け入れるための任意の動機である場合の答えを受け入れるためのいくつかのポイントを得る

setNames(expand.grid(rep(list(0:1), length(tmp))), tmp) 
# X1 X2 X3 X4 
#1 0 0 0 0 
#2 1 0 0 0 
#3 0 1 0 0 
#4 1 1 0 0 
#5 0 0 1 0 
#6 1 0 1 0 
#7 0 1 1 0 
#8 1 1 1 0 
#9 0 0 0 1 
#10 1 0 0 1 
#11 0 1 0 1 
#12 1 1 0 1 
#13 0 0 1 1 
#14 1 0 1 1 
#15 0 1 1 1 
#16 1 1 1 1 
+0

@mackbox私はあなたのコメントに続いているかどうかはわかりません。 "X1"がすでにオブジェクトとして定義されている場合は、最初のオプションを使用できます。 – akrun

関連する問題