2012-01-05 5 views
1

merge.xts을 호출 한 후 생성 된 시계열 객체에는 A.1, B.1, C.1이라는 3 개의 열이 있습니다. 원본 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, ]을 호출하면 이러한 모든 열에 대한 행이 반환되지 않습니다.

왜 공통 열이 하나의 세트로 축소되지 않았습니까?

답변

4

?merge.xts 매우 명확하게 "xts '개체에 병합 작업을 수행 할 때 시간으로 (색인)으로 표시됩니다." 병합은 일반적인 열에서 수행됩니다. data.frame 메소드를 참조하여 ?merge에서 읽었을 것입니다.

+0

감사합니다. 병합 후에 수동으로 제거하는 것 이외의 merge.xts()에서 이중 열을 피할 수있는 방법이 있습니까? –

+2

@RobertKubrick : 병합 전에 병합을 제거하거나 병합 후에 병합을 제거하십시오. 병합되는 두 개 이상의 객체에서 열이 같은지 확인하려면 'merge.xts'에 많은 복잡성이 추가됩니다 (예 : 데이터가 동일하지만 열 이름이 다른 경우, 부동 소수점을 비교할 때 허용되는 오차 두 객체의 열에있는 데이터가 같지만 세 번째 객체에 비슷한 이름의 열이 다른 경우 등). –

2

rbind이 아니라면 merge이 아니겠습니까? 나는 http://darrendev.blogspot.jp/2012/08/small-rxts-code-snippets-and-tips.html (예제 6a와 6b 참조)에 예제 데이터로 블로그를 작성했다.

병합중인 xts 오브젝트에 동일한 타임 스탬프가 있으면 중복 행이 생깁니다. 따라서 원하는 결과를 얻으려면 중복을 후 처리 단계로 제거하십시오.