on.exit() 関数の「追加」引数が true である簡単な使用例を教えてもらえますか?
2 に答える
10
これは非常に簡単な例です
myfun <- function(x){
on.exit(print("first"))
on.exit(print("second"), add = TRUE)
return(x)
}
myfun(2)
#[1] "first"
#[1] "second"
#[1] 2
add=TRUE パラメータを指定しないとどうなるかにも注意してください
fun <- function(x){
on.exit(print("first"))
on.exit(print("second"))
return(x)
}
fun(2)
#[1] "second"
#[1] 2
「add=TRUE」を追加しない場合、on.exit の 2 回目の呼び出しで最初の呼び出しが削除されます。
于 2012-06-11T01:20:28.860 に答える
0
Rはわかりませんが、onexeitの定義を読んで、前の式を上書きしadd = true
ながら、以前に保存されたonexit式に加えて最初の式が評価されることを確認します。add = false
周りを見回すと、 jhsph.eduでこれを見つけました:
基本的には、出口tmp
だけでなく閉鎖されている ことを確認しているようですfile
readData2 <- function(file, ...) {
file <- file(file, "r")
on.exit(close(file))
tmp <- tempfile()
tmpcon <- file(tmp, "w")
on.exit(close(tmpcon), add = TRUE)
incomment <- FALSE
while(length(line <- readLines(file, 1)) > 0) {
.
.
. ommited in SO example
.
.
.
}
close(tmpcon)
close(file)
on.exit()
read.csv(tmp, ...)
}
于 2012-06-11T00:44:57.153 に答える