2013-10-16 12 views
1

merge(foo, footoo, all = FALSE)을 사용하여 하나의 xts 개체에 두 개의 계열을 추가했습니다.계산 된 열을 추가하는 방법

지금 나는 새로운 벡터 = foo는/footoo을해야합니다

  1. 중 기존 XTS에 새로운 열이
  2. 객체 또는 새로운 XTS는 인덱스와 같은 객체한다.

안전하게 색인화 된 xts 객체에 색인화되지 않은 벡터 벡터를 조인하지 않도록 할 수 있기 때문에 cbind의 사용을 피하려고합니다.

data.frame과 같은 것을 강요 할 필요가 있습니까? 그렇다면 색인을 그대로 유지하려면 어떻게해야합니까? 신경질적인을 주문하는 입니다.

저는 R에 매우 익숙합니다. R에서 시계열로 작업 한 것은 이번이 처음입니다.이 질문에 대한 대답이 나에게 모두 명백한 경우 사과드립니다.

미리 감사드립니다.

+0

오늘도 "tsnew <- merge (foo, footoo, foo/footoo, 모두 = FALSE)"를 사용할 수 있습니다. – opt

답변

2

transform 사용 예를 들어, 다음과 같이 새 열을 만들 수 있습니다

obj <- merge(foo, footoo, all = FALSE) 
transform(obj, newfoo = foo/footoo) 
+0

OK, 분명히 내가 당신에게 감사한다고 말하면 나는 규칙을 위반할 것이다. 그러나 나는 그럼에도 불구하고 당신에게 감사하고 싶다. 나는 "변형"에 대해 잊어 버렸다. 나는이 함축적으로 xts 객체를 data.frame에 던지 리라 짐작한다. (아마도이 ​​함수가 data.frame 클래스에 속한다는 잘못된 생각에 근거한다.) 어쨌든 이것은 정확히 내가 필요로 한 것입니다. 감사합니다. 아직도 배울 게 너무 많아 ... 미안해. 멀리 있었고 오늘이 프로젝트로 돌아 왔습니다. – opt

1

안전하게 아래와 같이 할 수 있습니다. xts은 시간 인덱스에 따라 항상 cbind 또는 merge이됩니다.

mergedXTS <- merge(foo, footoo, all=FALSE) 
mergedXTS$newfoo <- mergedXTS$foo/mergedXTS$footoo 
+0

감사합니다. cbind가 xts를 "안전"하다고 들으면 좋습니다. 데이타베이스 프로그래머로서의 저의 배경은 과도하게 조심스럽게 만듭니다. 그것이 내가 R과 그 다양한 클래스들과 패키지들을 전혀 모른다는 사실과 그 사실! 두 솔루션 모두 작동하므로 귀하와 agstudy 크레딧을 모두 제공하려고 시도했지만 분명히 한 가지 체크 표시 만 허용됩니다. 차용증! – opt

관련 문제