[程式] R用Matrix元素互乘會溢位,直接相乘卻不會

看板Statistics作者 (拉回即是埋點)時間14年前 (2011/06/01 23:14), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
------------------------------------------------------------------------ [軟體程式類別]: R [程式問題]: 資料處理 [軟體熟悉度]: 高(1年以上) [問題敘述]: 想請問板上的各位, 小弟最近在處理資料時, 經常會使用到Matrix中之兩個元素相乘之運算, 但會遇到採用Matrix元素相乘溢位狀況(大小約400000*30000), 而直接相乘卻不會的狀況? 有人遇過這種狀況嗎? [程式範例]: 我直接將一串程式附在這裡, 比較能夠說明這奇怪的問題。 > ComorTable[276,276] # 第[276,276]欄位 [1] 402697 > ComorTable[174,174] [1] 33187 > ComorTable[276,276]*ComorTable[174,174] # 兩元素相乘產生Overflow [1] NA Warning message: In ComorTable[276, 276] * ComorTable[174, 174] : 整數向上溢位產生了 NA > 402697*33187 #直接算卻可以有結果?? [1] 13364305339 想麻煩大家協助解決這個問題, 感謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.210.173 ※ 編輯: XYH 來自: 114.44.210.173 (06/01 23:15)

06/02 00:31, , 1F
integer 換成 double
06/02 00:31, 1F

06/02 02:25, , 2F
ComorTable <- as.double(ComorTable)
06/02 02:25, 2F

06/02 23:40, , 3F
我今天到辦公室測機台,真的可以耶,謝謝大家^^
06/02 23:40, 3F

06/02 23:40, , 4F
不過我有一點問題,double是連整數位一次提昇嗎?因為找不到
06/02 23:40, 4F

06/02 23:41, , 5F
相關資料,所以有點好奇~
06/02 23:41, 5F

06/03 00:04, , 6F
google: float point
06/03 00:04, 6F

06/03 00:07, , 7F
這是計算機本身的問題,與R無關.它存在極小的誤差,但
06/03 00:07, 7F

06/03 00:08, , 8F
輸出時R把它乎略了.
06/03 00:08, 8F
文章代碼(AID): #1DvbTT0w (Statistics)