我在this线程中找到了一些关于xts字段表示的信息,但我还不清楚为什么xts是索引+矩阵。为什么不是索引+数据框?在使用因子和数字列时,这是否会提供更大的灵活性?
一旦我在xts中加载数据,大多数工作都包括对整个集合或时间序列的子集执行数值运算。为此,索引工作得很好,但我被迫通过data.frame(data.matrix(myxts))
之类的调用来提取因子和数字列。
此外,我发现使用$符号比使用矩阵索引更方便,尽管这确实是一个不同的问题。例如:
lm(myxts$Res ~ myxts$ThisVar + myxts$ThatVar)
比
更容易写lm(myxts[, "Res"] ~ myxts[, "ThisVar"] + myxts[, "ThatVar"]).
答案 0 :(得分:6)
xts使用矩阵而不是data.frame,因为:
您的第二个问题可以通过data=
使用lm
参数来解决,或者更一般地说,使用with
:
with(myxts, lm(Res ~ ThisVar + ThatVar))