2

R で (1:1700) から for ループを実行していますが、反復ごとに異なるデータをロードしています。しかし、その間のいくつかの反復でエラーが発生しています (対応するデータが欠落している可能性があります)。

エラーが発生した特定の反復をスキップできる方法があるかどうかを知りたい.

for ループを実行する必要があります。他に選択肢はありません。

4

2 に答える 2

3

tryはそのような問題に使用します。これにより、エラー メッセージで停止することなく、値のサイクルを通じてループを続行できます。

データを作る

set.seed(1)
dat <- vector(mode="list", 1800)
dat
tmp <- sample(1800, 900) # only some elements are filled with data
for(i in seq(tmp)){
    dat[[tmp[i]]] <- rnorm(10)
}
dat

なしでループtry

#gives warning
res <- vector(mode="list", length(dat))
for(i in seq(dat)){
    res[[i]] <- log(dat[[i]]) # warning given when trying to take the log of the NULL element
}

でループtry

#cycles through
res <- vector(mode="list", length(dat))
for(i in seq(dat)){
    res[[i]] <- try(log(dat[[i]]), TRUE) # cycles through
}
于 2013-07-05T08:21:29.390 に答える