作者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)
1F:推 memphis:integer 换成 double 06/02 00:31
2F:→ clickhere:ComorTable <- as.double(ComorTable) 06/02 02:25
3F:→ XYH:我今天到办公室测机台,真的可以耶,谢谢大家^^ 06/02 23:40
4F:→ XYH:不过我有一点问题,double是连整数位一次提昇吗?因为找不到 06/02 23:40
5F:→ XYH:相关资料,所以有点好奇~ 06/02 23:41
6F:→ clickhere:google: float point 06/03 00:04
7F:→ clickhere:这是计算机本身的问题,与R无关.它存在极小的误差,但 06/03 00:07
8F:→ clickhere:输出时R把它乎略了. 06/03 00:08