2016-09-14 7 views
1

私はquantmod monthlyReturn関数で奇妙な結果が出ます。Rとquantmod monthlyReturn関数の奇妙な結果

require(quantmod) 

getSymbols("VOO") 

adj <- Ad(VOO["2010-09"]) 

monthlyReturn(adj) 

(as.numeric(tail(adj)[6]) - as.numeric(adj[1]))/as.numeric(adj[1]) 

最後の2つのコマンドは0.03559799

しかしas.numeric(tail(adj)[6])as.numeric(adj[1])は私がそれぞれ92.8155689.62508値とコマンド(92.81556 - 89.62508)/89.62508は正しいが、異なる値0.03559807を与える与えるコマンド同じ答えになります。次に例を示します。上記の例。

誰かが私に何が間違っているのか、どうして違いがあるのでしょうか?

答えて

1

数字を数えて印刷すると精度が低下します。

options(digits=20) 
as.numeric(tail(adj)[6]) 
# 92.815557999999995786 
as.numeric(adj[1]) 
# 89.625084999999998558 

(as.numeric(tail(adj)[6]) - as.numeric(adj[1]))/as.numeric(adj[1]) 
#0.035597991343606506798 
(92.815557999999995786 - 89.625084999999998558)/89.625084999999998558 
#0.035597991343606506798