は、私はこのような拡張グリッド機能への各要素を渡したいのですが、(私の状況では、リスト内の要素の数が可変である)私はリストを持っているとリストの各要素を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を取ることができます。これをどのように達成できますか?
ありがとうございました。
は、私はこのような拡張グリッド機能への各要素を渡したいのですが、(私の状況では、リスト内の要素の数が可変である)私はリストを持っているとリストの各要素を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を取ることができます。これをどのように達成できますか?
ありがとうございました。
我々は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
@mackbox私はあなたのコメントに続いているかどうかはわかりません。 "X1"がすでにオブジェクトとして定義されている場合は、最初のオプションを使用できます。 – akrun
@mackbox注意として列名。 – lmo