r-为什么xts被实现为矩阵而不是数据帧

  • 本文关键字:数据帧 实现 xts r xts
  • 更新时间 :
  • 英文 :


我在这个线程中找到了一些关于xts字段表示的信息,但我仍然不清楚为什么xts是一个索引+一个矩阵。为什么不使用索引+数据帧?在处理因子和数字列时,这难道不允许更大的灵活性吗?

一旦我在xts中加载了数据,大部分工作都是对时间序列的全集或子集进行数值运算。为此,索引工作得很好,但我不得不通过像data.frame(data.matrix(myxts))这样的调用才能提取因子和数值列。

此外,我发现使用$符号比矩阵索引更方便,尽管这确实是一个不同的问题。例如:

lm(myxts$Res ~ myxts$ThisVar + myxts$ThatVar)

比更容易写

lm(myxts[, "Res"] ~ myxts[, "ThisVar"] + myxts[, "ThatVar"]).

xts使用矩阵而不是数据帧,因为:

  1. 它是zoo的一个子类,这就是zoo对象的结构
  2. 矩阵对象比数据帧具有更好的性能

您的第二个问题可以通过对lm使用data=参数来解决,或者更一般地,通过使用with:来解决

with(myxts, lm(Res ~ ThisVar + ThatVar))

最新更新