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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

3 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

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

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

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

abs(x-y) <= tol

無論如何你必須設(shè)置公差all.equal,這比它更緊湊和簡(jiǎn)單all.equal。


查看完整回答
反對(duì) 回復(fù) 2019-08-13
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

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


# 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


查看完整回答
反對(duì) 回復(fù) 2019-08-13
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

round(0.58 - 0.08, 2) == 0.5


查看完整回答
反對(duì) 回復(fù) 2019-08-13
  • 3 回答
  • 0 關(guān)注
  • 617 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)