第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

R中的數(shù)字比較難度

R中的數(shù)字比較難度

至尊寶的傳說 2019-12-02 08:04:34
R中的數(shù)字比較難度我試圖比較R中的兩個數(shù)字作為if語句條件的一部分:(a-b) >= 0.5在這個特定的例子中,a = 0.58和b = 0.08 ......但仍然(a-b) >= 0.5是假的。我知道使用==確切數(shù)字比較的危險,這似乎有關:(a - b) == 0.5) 是假的,而all.equal((a - b), 0.5) 是真的。我能想到的唯一解決方案是有兩個條件:(a-b) > 0.5 | all.equal((a-b), 0.5)。這有效,但這真的是唯一的解決方案嗎?我應該=永遠宣誓比較運營商的家庭嗎?為清晰起見編輯:我知道這是一個浮點問題。更重要的是,我要問的是:我該怎么做呢?什么是處理R中大于或等于比較的合理方法,因為>=它不能真正被信任?
查看完整描述

3 回答

?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

我從來都不喜歡all.equal這樣的事情。在我看來,寬容有時會以神秘的方式起作用。為什么不檢查大于公差小于0.05的東西

tol = 1e-5(a-b) >= (0.05-tol)

一般來說,沒有舍入和只有傳統(tǒng)的邏輯,我發(fā)現(xiàn)直接邏輯比all.equal更好

如果x == y那么x-y == 0。x-y對于我使用的這種情況,也許不完全是0

abs(x-y) <= tol

無論如何你必須設置公差all.equal,這比它更緊湊和簡單all.equal。



查看完整回答
反對 回復 2019-12-03
?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

如果要經(jīng)常使用此方法,可以將其創(chuàng)建為單獨的運算符或覆蓋原始的> =函數(shù)(可能不是一個好主意):


# using a tolerance

epsilon <- 1e-10 # set this as a global setting

`%>=%` <- function(x, y) (x + epsilon > y)


# as a new operator with the original approach

`%>=%` <- function(x, y) (all.equal(x, y)==TRUE | (x > y))


# overwriting R's version (not advised)

`>=` <- function(x, y) (isTRUE(all.equal(x, y)) | (x > y))


> (a-b) >= 0.5

[1] TRUE

> c(1,3,5) >= 2:4

[1] FALSE FALSE  TRUE



查看完整回答
反對 回復 2019-12-03
?
HUWWW

TA貢獻1874條經(jīng)驗 獲得超12個贊

為了完整起見,我會指出,在某些情況下,你可以簡單地舍入到幾個小數(shù)位(與之前發(fā)布的更好的解決方案相比,這是一種蹩腳的解決方案。)

round(0.58 - 0.08, 2) == 0.5


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 656 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號