私はいくつかの要件を満たすいくつかの組み合わせを見たい5つのテーブルを持っています。行列の乗算を使用してすべての可能な組み合わせを作成し、後で私のニーズを満たす行を選択することで、以下のデータを簡単に解決できます。問題は、私の元の問題はそれぞれ200行の5つのテーブルで構成されていることです。可能なすべての組み合わせを生成するには、数百GBのRAMが必要です。Rで私の5ループをスピードアップするための提案?
だから私が代わりにこれを試してみました:X1 < X2とX1 <×3:果たすべき
x1 <- seq(1,10,1)
x2 <- seq(5,15,3)
x3 <- seq(2,11,1)
x4 <- seq(1,5,1)
x5 <- seq(1,20,2)
を。
nm <- data.frame(matrix(NA,1,5))
for(a in 1:length(x1)){
for(s in 1:length(x2)){
for(d in 1:length(x3)){
for(f in 1:length(x4)){
for(g in 1:length(x5)){
l1 <- x1[a]
l2 <- x2[s]
if(l1 < l2){
l3 <- x3[d]
if(l1 < l3){
l4 <- x4[f]
l5 <- x5[g]
fy <- c()
fy[1] <- l1
fy[2] <- l2
fy[3] <- l3
fy[4] <- l4
fy[5] <- l5
nm <- rbind(nm, fy)
}}}}}}}
私の元々の問題では、私はより多くのif文を持っています。しかし、私は約24時間稼働させていますが、それでもやっていません。上記の問題は約10秒かかるので、私はそれが固まったと思うようになります。
R経験則:可能な限り、ループの代わりにベクトル化された操作を使用してください。 – OmaymaS
あなたがしようとしたことを私たちに示すよりも、言葉で何をしようとしているのかを説明してみませんか?より良いアプローチがあるかもしれません。そうでないかもしれません。実際のデータに必要な反復回数を計算しましたか? – MrFlick
私はもう1行追加しましたが、単語の問題を理解するために何が欠けているのか分かりません。私のオリジナルのデータには約200^5の組み合わせがありますが、どれくらいが要件を満たしているか分かりません。 – Jixxi