ある条件がアクティブになって次の反復にスキップすると、反復プロセスにNULL値を格納しないようにする方法がありますか?「どのように解決する」の意図は、この問題は、ループの構造そのものであるforループ内で反復をスキップするときにNULL値を格納しないようにする
[CONTEXT]:
あなたは内部の記憶メカニズムを使用する必要があるとき、私はケースを参照してください。条件文と連動してループし、基本的に可能性のあるパスの1つが興味のないシナリオが与えられます。計算を後で行うのではなく、その時点で治療を与えることを誇りにして、次の反復にスキップします。
[例]のみリスト 2より大きい配列の保存された番号で私が興味を持って、数の特定の配列所与
仮定する。
storeGreaterThan2 <- function(x){
y <- list()
for (i in seq_along(x)) {
if (x[i] > 2) {
y[[i]] <- x[i]
} else {
next
}
}
y
}
最終目的とした以前の機能の契約が、反復をスキップするための条件が活性化されたときのインデックスで不足している操作は、最終リストにNULL値で満たされています。それはそれに対処することができるか、ループの構造内部の問題に対処するの精神で
> storeGeaterThan2(1:5)
[[1]]
NULL
[[2]]
NULL
[[3]]
[1] 3
[[4]]
[1] 4
[[5]]
[1] 5
?
あなたのループ内でインデックス長を使用(y)+1とすると、次のような追加要素を追加することができます: 'y [[length(y)+1]] < - x [i]'。あなたの望む結果に応じて、forループを使うよりもいくつかのより良い、そしてより速い方法があります。 – Dave2e
これは、同じループ内のNULL値の問題を引き起こす良い解決策です。 –