2013-06-04 62 views
4

當用戶放棄R時,是否可以從當前迭代中返回數據?當用戶放棄R時返回當前數據R

喜歡的東西:

if (user.aborts == TRUE) { return(data) } 

這將是非常有用的,因爲這個過程的輸入是唯一的數據。然後它可以被分解,然後繼續。

+0

你是什麼意思?一箇中斷?如果是這樣,看看'tryCatch',它可以接受一箇中斷處理程序。 – Thomas

+0

Emacs中的C-C C-C鏈接到一個函數'(comint-interrupt-subjob)'所以我相信一個「中斷」這個名詞的確是? – PascalVKooten

回答

5

如果您的意思是手動停止該過程,例如

myfun <- function(x){ 
    on.exit(return(x)) 
    for(i in 1:5){ 
    x <- x + 1 
    Sys.sleep(1) 
    } 
} 

x <- myfun(1) # Stopping before it finishes 
x 
[1] 4 
+0

它的工作原理。謝謝,這就是我正在尋找的東西。 – PascalVKooten

+1

非常好。只是評論說,如果一個函數由於錯誤或者在其聲明的自然過程中退出而退出,那麼'on.exit'就會這樣工作。此外,您可以通過圍繞'x <-runif(1)':-)運行無限循環來構建賭博機器 –