2016-02-10 13 views
0

我在想如果一個函數,我可以用來檢查應該總結到附近 1已經存在。理想情況下,這些數字應該總計爲1,但如果距離它不太遠,我不會感到困擾。 如果我使用if(y == 1)if(y <= 1),我會得到太多的不匹配,這並不重要,因爲差異是由於舍入小數。 我想出了四捨五入的矢量爲零小數,但我很想能夠從理想和適用某種寬容的,像1%或0.05考慮近似值的測試,不是嚴格的值

y = c(.4965, .2666, .115, .0750, .0316, .0147) 

> isTRUE(round(sum(y),0)<=1) 
[1] TRUE 

> isTRUE(round(sum(y),0)<=.99) 
[1] FALSE 
+0

有可能是一個非常徹底的方式來做到這一點與有效數字,如果它是值得的代碼。 – alistaire

回答

2

可以使用all.equal功能並指定你想要的容差:

all.equal(sum(y), 1, tolerance = 0.05) 
#[1] TRUE