R で「ペアワイズ」配列を作成しています。 vectorcombo
を指定すると、4 つの要素のすべての順列が見つかります。したがって、4 次元の「ペアワイズ」配列です。私の現在のアプローチは、次のようにlist
ネストされたsapply
関数を使用して、単純にすることです。
fourList <- sapply(X = combo, FUN = function(h) {
hi <- which(combo == h) #get index of h
sapply(X = combo[hi:n], FUN = function(i) {
ii <- which(combo == i) #get index of i
sapply(X = combo[ii:n], FUN = function(j) {
ji <- which(combo == j) #get index of j
sapply(X = combo[ji:n], FUN = function(k) {
list(c(h,i,j,k))
})
})
})
})
ある種の進行状況インジケーターを作成したいので、アレイの何パーセントが構築されたかをユーザーに報告できます。理想的には、それnumberCasesCompleted
を割って、totalCases = length(combo)^4
完了した分数を取得します。しかし、 、、およびを取り込んで値 を出力するアルゴリズムを理解できないようです。どうすればこれを計算できますか?hi
ji
ii
numberCasesCompleted
2D ( x
by y
) の場合 (例: sapply(X, function(x) {sapply(X[xi:n], function(y) {list(c(x,y))}}
)、これは で計算できますがsum(n - (x-2:x), y-(x-1))
、それを 4 次元に一般化するのはかなり難しいように思えます。