2
在R,是可以從控制檯將信號發送到正在運行的功能,使得該功能可以做什麼?例如,退出和返回當前值?在運行時讓R功能「監聽」控制檯輸入?
下面是一個例子:以下自舉功能的標準誤差的迴歸係數的。函數的詳細程度顯示了方差是如何演變的。它將漸近於其下限。我希望能夠發送INTERUPTION SIGNAL
(以某種方式),它將停止while循環並使函數完全退出。
example <- function(y, x){
bvec <- c()
while(TRUE){
s <- sample(1:1000, replace = T)
b <- lm(y[s]~x[s])$coef[2]
bvec <- append(bvec, b)
Sys.sleep(.1)
print(var(bvec))
if(INTERUPTION_SIGNAL){
return(var(bvec))
}
}
}
x <- rnorm(1000)
y <- x+rnorm(1000)
在虛擬的例子,我可能只是在全球運行。在實際情況下這是不切實際的。在每次迭代之後寫入磁盤也是可能的,但這會很慢。我想我可以在冗長之上添加以下代碼行:tempout <<- var(bvec)
,這可以通過將輸出放在全局中來工作。但是這感覺有點笨拙,並且都依賴^C
,我寧願不使用它。