适用于R中的xts对象

时间:2013-03-11 19:34:45

标签: r time-series xts zoo

我有一个xts个对象。我想对每一行取平均值并将其合并回我的对象​​。例如:

require(xts)
obj = xts(matrix(1:100, ncol=2), order.by=seq.Date(from=as.Date("2012-01-01"), by=1, length=50))
another_obj = apply(obj, 1, mean)

现在只是一个以日期作为名称的向量。

class(another_obj)
   [1]  "numeric"

我可以再次将其转换为xts并将名称用作order.by,然后将所有内容合并回obj,但这非常繁琐。

another_obj = as.xts(another_obj, order.by=as.Date(names(another_obj)))
obj = merge(obj, another_obj)

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

这将添加一列,其中包含每行的平均值

obj <- cbind(obj, rowMeans(obj))

编辑澄清cbind在这里工作的原因:

我在这里使用cbind.xts,这是一个电话merge.xts。所以上面相当于:

obj <- merge(obj, rowMeans(obj))

答案 1 :(得分:2)

你的意思是这样的吗?

   obj <- as.xts(transform(obj, another_obj=rowMeans(obj)))