简体   繁体   中英

R xts how to add calculated column

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM