【发布时间】:2015-01-16 02:47:03
【问题描述】:
我正在尝试在代表多个滞后的数据框中创建新变量。我现在有一个时间序列“序列”,我想创建 10 个不同的变量,每个变量代表“序列”的某个滞后。因此,生成的数据框将具有原始变量“系列”,加上 10 个名为 (1, 2, 3, 4, ... 10) 的变量,这些变量代表该滞后数。我目前正在 for 循环中尝试这个:
for (i in 1:max.lag){
lag.death$"i" <- lag(tscampos, i)
}
但是读完这里之后,我怀疑我可能想使用其中一个应用函数?有任何想法吗?
【问题讨论】:
-
当你超出时间范围时,你想用零填充边吗?
*apply可能是一个解决方案,但如果我是你,我宁愿编写一个函数来在你需要的任何时候为你完成这项工作,而不是存储 10 个相同系列的滞后版本.. 等一下 ;) -
等一下,你说的是实际的 R 的
lag函数吗?如果是,则此函数返回一个滞后的“时间序列对象”,该对象一旦卡在 data.frame 中,就与原始对象完全相同。如果你真的需要存储 10 个滞后版本的“系列”,那么将它们放入一个带有lapply(0:9,lag,x=lag.death$series)的列表中。 -
我以前也遇到过这个问题。当我想在分析中使用滞后时,我倾向于考虑为我需要的每个滞后添加新变量。但是,我发现对于我们在时间序列中使用的大多数 R 函数,它具有处理滞后的能力,并且您会在函数中找到滞后数作为选项。因此,您需要的只是原始变量以及代表时间序列的日期。
标签: r time-series