0

hx[[i]]150 要素のリストがあります。私のスクリプトはこのリストに徐々にデータを入力しますが、リストは「実際の」リストを参照しています。このため、読みやすくするために、スクリプト内でリストを一定の順序 (実際のリストのアルファベット順) にする必要があります。さらに、リスト要素は他のリスト要素 ( を除くhx[[1]]) に依存し、依存関係は、一部の要素がスクリプト内の以下の要素に依存するような方法で行われます。例えば、

hx[[2]] <- hx[[3]] + 4

hx[[3]] <- hx[[1]]

hx[[4]] <- hx[[2]] - 2

編集: 注意: 各代入操作はhx[[i]]、右側に多くても 1 つしかありません。明らかに、hx[[i]]それ自体は別のものに依存する可能性hx[[j]]がありますが、次のようなことは決して起こりません

hx[[k]] <- hx[[i]] + hx[[j]]

今、私がやっていることはばかげていますが、一見効果的です (もっと良い方法があるかどうか疑問に思っています)。リスト内のすべての要素を に割り当ててからhx[[1]]、コードを記述どおりに150 回実行して、逆方向の依存関係が確実に使用されるようにします。リスト項目が 4 つのみの例を以下に示します。

xx <- c(0,0,1,2,3)
hx[[1]] <- xx
for (i in 1:4) { hx[[i]] <- hx[[1]]}

for (i in 1:4){
hx[[1]] <- xx

hx[[2]] <- hx[[3]] + xx

hx[[3]] <- hx[[1]]

hx[[4]] <- hx[[2]] - 2*xx

# More assignments similar

}

今、私はこれがうまくいくと確信しています。しかし、(1) それは信じられないほど無駄に思えますし、(2) そうではないかもしれません。もっと頻繁に実行する必要がありますか? これを行うためのより良い方法は何ですか?

4

1 に答える 1

0

あなたがすべきこと:

  1. 要素が相互に依存する順序を把握します。つまり、x1 -> x2x2 -> x3などです。

  2. この順番でリストを作成してください。

  3. for上から下へのループを使用して要素を初期化します。

  4. 読みやすさの制約に合わせてリストを並べ替えます。

于 2013-06-22T06:37:38.403 に答える