我想将唯一的数字因子作为 xts 的一部分,以便随着时间的推移......每个数字都指一个特定的因子,与时间无关。
举个例子,想象一个股票指数每天都在变化。如果我有以下两个字母股票代码的宇宙,我们可以模拟这一点
universe <- apply(as.data.frame(expand.grid(letters,letters)),1,paste0,collapse="")
并且每天都会创建一个指数,该指数是来自宇宙的 20 个股票代码的随机子样本。
subsample.list <- lapply(1:50, function(y){
sort(sample(universe,20,replace=FALSE))
})
50天独特股票的关键是:
uni.subsample <- sort(unique(unlist(subsample.list)))
如果我有 xts 对象和独特的因素,我希望基本上每天都能看到指数中有哪些股票。
虽然它不应该以这种方式使用....我在想这样的事情:
tmp <- xts(do.call(rbind,subsample.list),Sys.Date()-c(50:1))
创建 xts。
但是我想将 coredata 转换为一个数字矩阵,其中每个数字都是来自uni.subsample
所以如果tmp.adjusted['20130716'][1,]
是长度为 20 的数字的数字向量,它代表 2013 年 7 月 16 日的数值uni.subsample
,所以我希望我能够通过使用 xts 来获取所有 2013-07-16 的索引成员以下方式uni.subsample[tmp.adjusted['20130716'][1,]]
...即从 tmp 到 tmp.adjusted 的调整将字符串转换为因子,具有与相关的唯一级别uni.subsample
我希望这是有道理的……有点难以解释……