在致電merge.xts
後,我的結果時間序列對象有3列,分別命名爲A.1,B.1,C.1。原始的xts對象都設置了A,B,C列。我假設合併是按照文檔在所有常見列上執行的。R:merge.xts公共列
我檢查了列內容A,B,C和A.1,B.1,C.1。對my.merged[my.merged$A.1 != my.merged$A, ]
的調用將不會爲所有這些列返回行。
爲什麼常見的列不會在一組中崩潰?
在致電merge.xts
後,我的結果時間序列對象有3列,分別命名爲A.1,B.1,C.1。原始的xts對象都設置了A,B,C列。我假設合併是按照文檔在所有常見列上執行的。R:merge.xts公共列
我檢查了列內容A,B,C和A.1,B.1,C.1。對my.merged[my.merged$A.1 != my.merged$A, ]
的調用將不會爲所有這些列返回行。
爲什麼常見的列不會在一組中崩潰?
?merge.xts
非常明確地說它是「用於對'xts'對象執行合併操作的時間(索引)」。它並沒有說合並是在公共列上完成的。您可能在?merge
中參考data.frame方法來閱讀。
我想你可能想要的是rbind
,而不是merge
。我通過示例數據在http://darrendev.blogspot.jp/2012/08/small-rxts-code-snippets-and-tips.html(見條目6a和6b)上發表了博客。
如果你在合併的兩個xts對象中都有相同的時間戳,那麼你將得到重複的行。因此,爲了得到您想要的結果,您可以刪除重複項作爲後處理步驟。
謝謝。有沒有辦法避免merge.xts()中的雙列,而不是在合併之後手動刪除它們? – 2012-01-05 21:13:31
@RobertKubrick:在合併之前移除它們或在合併之後移除它們。它會增加'merge.xts'的複雜性,以檢查兩個或更多對象中的列是否相等(例如,如果數據相同但列名不同?比較浮點的容差是多少數字?如果兩個對象中的列中的數據是相同的,但是第三個對象中的名稱相似的列是不同的?等等)。 – 2012-01-05 21:16:54