我正在使用ars
(自適應拒絕採樣)庫來對凹面密度分佈中的給定變量進行採樣。如何從不引發異常的庫函數中捕獲錯誤(`ars`)?
事情是,ars
功能打印「ifault代碼」,當出現錯誤,但顯然它不會拋出任何異常。
library(ars)
f<-function(x,mu=0,sigma=1){-1/(2*sigma^2)*(x-mu)^2}
fprima<-function(x,mu=0,sigma=1){-1/sigma^2*(x-mu)}
# mysample<-ars(1,f,fprima,mu=2,sigma=3) # it gives no errors
mysample<-ars(1,f,fprima,mu=2,sigma=3, x=c(2,4)) # bad choice of x
hist(mysample)
的問題是,我稱之爲從蟒蛇的ars
功能使用rpy2
,我需要我的程序知道ars
是否已經能夠生成樣本。也就是說,我想ars
拋出一個真正的異常或返回一些特殊的價值。
我該如何發現錯誤?
'if(grepl(' ')' – doicomehereoften1
變量'mysample'的值不是ifault代碼:( – alberto
)爲什麼不重寫'ars'的代碼,以便它的行爲符合你期望的nmanner?來自'doicomehereoften'的註釋不太可能因爲代碼顯示消息是用'cat'構造的,這只是一個副作用 –