我有一个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)
这样做的正确方法是什么?
答案 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)))