Ale*_*lex 1 r time-series apply zoo xts
我无法在文档中找到这个问题的答案,我认为这是有效的,因为它zoo是xts对象的基础,但是:
lag和diff函数xts吗? rollapply一个函数的xts中的对象zoo的意义-我知道,xts有period.apply哪个非重叠区域工作的作用-应一个只使用rollapply于xts对象,它应该再次因为有工作zoo底下?编辑:我只是查找细节,它似乎并没有zoo真正的底层xts.有人可以对此进行评论/验证吗?
A5C*_*2T1 10
你可以,但你可能得不到你期望的结果.
这是lag应用于ts对象的一年滞后(ldeaths是一个内置数据集,在帮助文件中用作示例lag,因此您也可以尝试).滞后集在一年前开始(并显示所有数据).
ldeaths
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 1974 3035 2552 2704 2554 2014 1655 1721 1524 1596 2074 2199 2512
# 1975 2933 2889 2938 2497 1870 1726 1607 1545 1396 1787 2076 2837
# 1976 2787 3891 3179 2011 1636 1580 1489 1300 1356 1653 2013 2823
# 1977 3102 2294 2385 2444 1748 1554 1498 1361 1346 1564 1640 2293
# 1978 2815 3137 2679 1969 1870 1633 1529 1366 1357 1570 1535 2491
# 1979 3084 2605 2573 2143 1693 1504 1461 1354 1333 1492 1781 1915
lag(ldeaths, 12)
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 1973 3035 2552 2704 2554 2014 1655 1721 1524 1596 2074 2199 2512
# 1974 2933 2889 2938 2497 1870 1726 1607 1545 1396 1787 2076 2837
# 1975 2787 3891 3179 2011 1636 1580 1489 1300 1356 1653 2013 2823
# 1976 3102 2294 2385 2444 1748 1554 1498 1361 1346 1564 1640 2293
# 1977 2815 3137 2679 1969 1870 1633 1529 1366 1357 1570 1535 2491
# 1978 3084 2605 2573 2143 1693 1504 1461 1354 1333 1492 1781 1915
Run Code Online (Sandbox Code Playgroud)
现在,将数据集转换为xts对象并尝试.
ldeaths.x = as.xts(ldeaths)
head(lag(ldeaths.x, 12), n=14)
# [,1]
# Jan 1974 NA
# Feb 1974 NA
# Mar 1974 NA
# Apr 1974 NA
# May 1974 NA
# Jun 1974 NA
# Jul 1974 NA
# Aug 1974 NA
# Sep 1974 NA
# Oct 1974 NA
# Nov 1974 NA
# Dec 1974 NA
# Jan 1975 3035
# Feb 1975 2552
Run Code Online (Sandbox Code Playgroud)
哎呀.不是你所期望的.但你应该期待它,因为帮助文件lag.xts说:
......决定滞后的默认行为应该与该运算符的公共时间序列解释相匹配 - 特别是时间't'的值应该是时间't-1'的值为正滞后.这与lag.zoo和lag.ts不同.
那么,试试吧k = -12.
head(lag(ldeaths.x, -12), n=14)
# [,1]
# Jan 1974 2933
# Feb 1974 2889
# Mar 1974 2938
# Apr 1974 2497
# May 1974 1870
# Jun 1974 1726
# Jul 1974 1607
# Aug 1974 1545
# Sep 1974 1396
# Oct 1974 1787
# Nov 1974 2076
# Dec 1974 2837
# Jan 1975 2787
# Feb 1975 3891
Run Code Online (Sandbox Code Playgroud)
为了好玩,zoo对象会发生什么?首先,转换为zoo然后尝试它.
ldeaths.z = zoo(ldeaths.x)
head(lag(ldeaths.z, 12), n=14)
#
# Jan 1974 2933
# Feb 1974 2889
# Mar 1974 2938
# Apr 1974 2497
# May 1974 1870
# Jun 1974 1726
# Jul 1974 1607
# Aug 1974 1545
# Sep 1974 1396
# Oct 1974 1787
# Nov 1974 2076
# Dec 1974 2837
# Jan 1975 2787
# Feb 1975 3891
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6406 次 |
| 最近记录: |