我在刪除xts對象中的重複行時遇到問題。我有一個R腳本,它將下載一個貨幣的點擊金融數據並將其轉換爲OHLC格式的xts對象。該腳本還會每15分鐘提取一次新數據。新數據從今天的第一筆交易下載到今天最後一筆交易。之前下載的舊數據以.Rdata格式存儲並調用。然後將新數據添加到舊數據中,並以.Rdata格式覆蓋舊數據。R語言:刪除xts對象中的重複行
這裏是什麼我的數據看起來像一個例子:
.Open .High .Low .Close .Volume .Adjusted
2012-01-07 00:00:11 6.69683 7.01556 6.38000 6.81000 48387.58 6.81000
2012-01-08 00:00:09 6.78660 7.20000 6.73357 7.11358 57193.53 7.11358
2012-01-09 00:00:57 7.08362 7.19100 5.81000 6.32570 148406.85 6.32570
2012-01-10 00:01:01 6.32687 6.89000 6.00100 6.36000 110210.25 6.36000
2012-01-11 00:00:07 6.44904 7.13800 6.41266 6.90000 99442.07 6.90000
2012-01-12 00:01:02 6.90000 6.99700 6.33700 6.79999 140116.52 6.79999
2012-01-13 00:02:01 6.78211 6.80400 6.40000 6.41000 60228.77 6.41000
2012-01-14 00:00:23 6.42000 6.50000 6.23150 6.31894 25392.98 6.31894
現在,如果我運行該腳本,我再次將新數據添加到XTS。
.Open .High .Low .Close .Volume .Adjusted
2012-01-07 00:00:11 6.69683 7.01556 6.38000 6.81000 48387.58 6.81000
2012-01-08 00:00:09 6.78660 7.20000 6.73357 7.11358 57193.53 7.11358
2012-01-09 00:00:57 7.08362 7.19100 5.81000 6.32570 148406.85 6.32570
2012-01-10 00:01:01 6.32687 6.89000 6.00100 6.36000 110210.25 6.36000
2012-01-11 00:00:07 6.44904 7.13800 6.41266 6.90000 99442.07 6.90000
2012-01-12 00:01:02 6.90000 6.99700 6.33700 6.79999 140116.52 6.79999
2012-01-13 00:02:01 6.78211 6.80400 6.40000 6.41000 60228.77 6.41000
2012-01-14 00:00:23 6.42000 6.50000 6.23150 6.31894 25392.98 6.31894
2012-01-14 00:00:23 6.42000 6.75000 6.22010 6.57157 75952.01 6.57157
正如你所看到的最後一行是倒數第二行那一天。我想保留最後一個日期的最後一行並刪除倒數第二行。當我嘗試下面的代碼刪除重複的行時,它不起作用,重複的行留在那裏。
xx <- mt.xts[!duplicated(mt.xts$Index),]
xx
.Open .High .Low .Close .Volume .Adjusted
我沒有得到任何結果。如何使用索引作爲重複指示刪除xts對象中的重複數據條目?
也許你的意思是'!duplicated(mt.xts)'? – joran 2012-01-14 20:57:21
我想我需要找到一種方法來刪除基於row.names,或使用.Open和.Adjusted作爲重複行的指標。使用指數將是最好的,因爲未來可能會有不同日期的公開和調整值相同。 – Kevin 2012-01-14 21:14:31
@joran當我做xx =!重複(mt.xts)我只得到一個邏輯向量。在之前使用我之前所做的工作中,它似乎有效,但它們的對象不是xts。 – Kevin 2012-01-14 21:19:55