3
我使用R中的transform()函數創建了具有新變量的時間序列對象,並且無法找到合適的函數來計算今天和昨天之間的變量C的差異。在R中生成新的時滯變量
這是我到目前爲止有:
O H L C Typical Range
2010-07-23 1092.17 1103.73 1087.88 1102.66 1098.090 15.85
2010-07-26 1102.89 1115.01 1101.30 1115.01 1110.440 13.71
2010-07-27 1117.36 1120.95 1109.78 1113.84 1114.857 11.17
2010-07-28 1112.84 1114.66 1103.11 1106.13 1107.967 11.55
2010-07-29 1108.07 1115.90 1092.82 1101.53 1103.417 23.08
2010-07-30 1098.44 1106.44 1088.01 1101.60 1098.683 18.43
下一行會與下面的函數中添加:
SPX <- transform(SPX, Return = (C - C(yesterday))/C(yesterday)))
顯然,C(昨天)不正確。我試過lag(),diff(),還沒有找到正確的組合。
紅利問題:你如何獲得Typical變量只顯示給hundreth?
謝謝Josh,我從來沒有聽說過ROC()。尼斯。我正在與來自quantmod的Delt()搞混,它似乎是做同樣的事情,但遇到了與diff()相同的問題,如下所示: 錯誤'$ < - 。data.frame '('* tmp *',「Diff」,value = c(1.74000000000001,: 替換有900行,數據有901 但是ROC工作正常。嗯。 – Milktrader 2010-08-01 03:15:31
澄清一點:我上面的例子使用了一個xt這個錯誤可能是因爲Delt和diff不包括你正在使用的對象類的前導NA(一個data.frame?) – 2010-08-01 03:20:22
做了一個str(SPX)後,它確實說了data.frame。 ,這是很奇怪的,因爲我以前使用quantmod來下載數據,但是我做了很多改變,所以我丟失了我的歷史文件的一部分,所以我不記得了。 ough。我會再試一次,確保我有一個xts對象 – Milktrader 2010-08-01 03:28:26