我已经找到了有关this线程中xts字段表示形式的一些信息,但我仍然不清楚为什么xts是索引+矩阵。为什么不使用索引+数据框?使用因子和数字列时,这样是否可以提供更大的灵活性?
在将数据加载到xts中后,大部分工作将包括对整个序列或时间序列的子集执行数字运算。为此,索引工作得很好,但是我不得不经过像data.frame(data.matrix(myxts))
这样的调用才能提取因子和数值列。
另外,我发现使用$表示法比矩阵索引更方便,尽管这确实是一个不同的问题。例如:
lm(myxts$Res ~ myxts$ThisVar + myxts$ThatVar)
比写容易
lm(myxts[, "Res"] ~ myxts[, "ThisVar"] + myxts[, "ThatVar"]).
最佳答案
xts使用矩阵而不是data.frame是因为:
您的第二个问题可以通过使用
data=
的lm
参数来解决,或更普遍地,通过使用with
来解决:with(myxts, lm(Res ~ ThisVar + ThatVar))