문제

I have two series that I have joined in a single xts object using merge(foo, footoo, all = FALSE).

Now I need to take a new vector = foo/footoo :

  1. either as a new column in the existing xts object
  2. or as a new xts object with the same index.

I'm trying to avoid use of cbind because I can't bring myself to haphazardly join an unindexed vector of data to my safely ordered xts object.

Do I need to coerce to something like data.frame (for which I would know how to do this)? But if so, how do I keep my index intact? It's the ordering that has me nervous.

I'm very new to R and this is the first time I've worked with time series in R, so I apologize if this question has an answer that is obvious to all but me.

Thanks in advance.

도움이 되었습니까?

해결책

Using transform for example, you can create a new column like this:

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

다른 팁

You can safely do as below. xts will always cbind or merge by time index.

mergedXTS <- merge(foo, footoo, all=FALSE)
mergedXTS$newfoo <- mergedXTS$foo/mergedXTS$footoo
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top