1

我有一个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)

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

4

2 回答 2

4

这将添加一列,每行的平均值

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

编辑澄清为什么在cbind这里工作:

我在这里使用cbind.xts的是一个电话merge.xts。所以上面等价于:

obj <- merge(obj, rowMeans(obj))
于 2013-03-11T19:43:18.527 回答
2

你的意思是这样的?

   obj <- as.xts(transform(obj, another_obj=rowMeans(obj)))
于 2013-03-11T19:45:07.167 回答