我希望每天对一组变量进行排名(从一个名为zoo
的系列开始)。
以下是一个例子:
set.seed(1)
x <- zoo(matrix(rnorm(9), nrow=3), as.Date("2010-01-01") + 0:2)
colnames(x) <- letters[1:3]
我知道的唯一方法是使用
rollapply
,但这样做会很慢。> rollapply(x, 1, rank, by.column=FALSE)
a b c
2010-01-01 1 3 2
2010-01-02 1 2 3
2010-01-03 1 2 3
有其他建议吗?
as.numeric(index(x))
创建浮点数并将其作为单个向量传递。 对于其余部分,例如coredata(x)
,我使用矩阵 - 是的,我有点偏爱 Rcpp 和 RcppArmadillo。 也许有一天我会和 Jeff 坐下来商讨如何将一些xts
索引更接近 Rcpp。 到目前为止,基本的向量和矩阵解决方案运行得很好。 - Dirk Eddelbuettel