看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 想請問一下大家有沒有看過excel跑出的結果與R跑出的結果不一樣的? 我有一個excel檔案用以模擬某個東西的溫度變化,我的工作是把他轉成R 我轉成R後發現溫度結果對不上(百來次計算後差約2%, 上百萬次後差10%) ,經過拆解中間的運算過程後,發現是因為R和excel使用的小數點位數不同 因此一開始是百萬分之一的差異經過多次累加後就變大了。 請問有什麼方法可以使兩者用一樣的小數位數進行計算嗎?謝謝 [程式範例]: [環境敘述]: win 10 , R 3.6.1 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.157.129.163 (加拿大) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1621519441.A.0EF.html
andrew43: round強制以某個特定位數,但可能損失精確度 05/20 23:14
andrew43: 不過究竟辦法還是要了解二者浮點數處理到底怎麼回事吧 05/20 23:15
alsmknn: 我試過讓R只讀進小數下第四位,但他還是會自己補上小數 05/21 00:25
alsmknn: 四位後的數值(非0) 05/21 00:25
andrew43: 不只輸入,運算過程要都一致。感覺很麻煩 05/21 18:31
Edster: 用readxl讀進來的時候,不要讀成數字。用字串處裡調尾數。 05/22 02:25
alsmknn: 我找到了個packge Rmpfr可以要求R使用更多digit進行運算 05/22 04:05
alsmknn: 但是跟andrew大說的一樣運算中會不斷變回原本的digit位數 05/22 04:05
alsmknn: 我目前還在找方法強迫R對每個數都使用更多digits運算 05/22 04:06