作者XYH (拉回即是埋點)
看板Statistics
標題[程式] R用Matrix元素互乘會溢位,直接相乘卻不會
時間Wed Jun 1 23:14:33 2011
------------------------------------------------------------------------
[軟體程式類別]:
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)
推 memphis:integer 換成 double 06/02 00:31
→ clickhere:ComorTable <- as.double(ComorTable) 06/02 02:25
→ XYH:我今天到辦公室測機台,真的可以耶,謝謝大家^^ 06/02 23:40
→ XYH:不過我有一點問題,double是連整數位一次提昇嗎?因為找不到 06/02 23:40
→ XYH:相關資料,所以有點好奇~ 06/02 23:41
→ clickhere:google: float point 06/03 00:04
→ clickhere:這是計算機本身的問題,與R無關.它存在極小的誤差,但 06/03 00:07
→ clickhere:輸出時R把它乎略了. 06/03 00:08