问题标签 [zoo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R:为什么我的向量是无序的?
假设我有这个动物园矢量
我想以某种顺序提取几个元素
有用!。但现在我尝试以不同的方式做到这一点
我不知道为什么我以不同的顺序得到它。我怎样才能保持我想要的顺序,我的列表顺序??我不介意它是一个列表、一个向量、按列还是按行,但我想按照我要求的顺序得到它。
干杯
r - 在 R 中按周聚合
在 RI 中,经常按月聚合每日数据(在 a 中zoo
),使用如下所示:
result <- aggregate(x, as.yearmon, "mean", na.rm=TRUE)
有没有办法可以按周做到这一点?
r - 在 R 中跨动物园对象快速应用 xts 向量操作
这真的是我昨天了解的问题apply.weekly
的延伸。这很好用,但我想在宽zoo
对象上执行此操作。如果我apply.weekly
在广泛使用zoo
它对列求和,然后执行每周聚合:
我尝试了apply
操作符系列,但它们似乎去掉了zoo
日期索引。我可以for
循环执行,但这确实很耗时(比周期性aggregate
函数慢四倍多)。as.yearmon
这是for
循环:
哪个有效(即,保持每个向量分开):
有没有办法快速对所有列进行操作apply.weekly
?谢谢!
更新:Joshua Ulrich 指出我需要一个列感知功能(如colMeans
or colSums
)。当我这样做时,我得到了正确的答案,但作为一个转置矩阵。我应该重新分类并继续前进吗?还是我有一个选项/设置错误?
r - Testing cointegration of two stocks using Yahoo Finance data
I am trying to perform a co-integration test on two stocks, using data from Yahoo Finance. From what I have been reading there are less complicated ways to retrieve Yahoo data. I need to retrieve two securities and define them as stk1
and stk2
as well as be able to adjust the time frame of the data retrieved. Here is what I have so far.
What tools exist to make this easier and/or more robust?
r - 有没有办法强制 zoo::rollmean 函数返回一个与输入长度相同的向量?(或者也许使用其他功能?)
输出:
但是当我尝试绑定它时:
我想使用一个足够聪明的函数,如果它没有在向量的两端获取数据并仅根据它拥有的数据计算输出,则不要放弃。因此,例如在 input[1] 中,它将仅计算右侧的平均值
r - 在两列上使用 Rollapply
我正在尝试做一些我在这里要求的类似事情,不幸的是我无法解决。
这是我的数据框(数据),价格的时间序列:
我想告诉 R,
- 取“Vol”的第 1 个值除以“Price”的第 20 个值,然后
- 取“Vol”的第 2 个值,然后除以“Price”的第 21 个值。
- 取“Vol”的第 3 个值除以“Price”的第 22 个值,然后
- 等等
在我的另一篇文章中,我能够使用此函数计算 20 天持有期的回报:
有没有办法为上述问题做一些非常相似的事情?所以像
其中 x 是“Vol”,y 是“Price”,然后应用“rollapply”?
非常感谢你
更新:@G 博士:感谢您的建议。稍作改动,它就做到了我想要的!
现在我的问题是,生成的数据框如下所示:
我知道必须有 NA 作为结果,但仅限于最后 20 次观察,而不是前 20 次观察。上述公式计算了正确的值,但是将它们从第 21 行而不是第一行开始。你知道我怎么能改变它吗?
r - 使用 read.zoo 读取时间序列表
我到处找遍了,但我找不到以前在哪里问过这个问题。
将这些数据放入适当的动物园系列的干净方法是什么?这个版本是一个复制/粘贴,以使这篇文章更容易,但它总是以下表形式出现(来自文本文件)。我的 read.zoo() 语句将 Year 读取为索引,但将季度(Qtr1、Qtr2 等)读取为列名。我一直在试图找出一种非垃圾的方式来将列读取为索引的“四分之一”部分,但它很草率(太草率而无法发布)。我猜这个问题已经解决了,但我找不到。
从 as.yearqtr() 文档中,目标看起来像:
datetime - 从频率 = 23 的不规则(as.Date)时间序列创建规则时间序列
我在 R 中有以下问题。我想从不规则时间序列(即日期和数据值列表)创建一个 ts() 对象(即规则时间序列)。
您可以使用以下数据集和 R 脚本重现该问题:
但这不起作用,因为我获得了一个包含每日时间步长的非常长的常规时间序列。我想获得一个频率 = 23 的 ts 对象,正确指示其数据不可用作 NA 的位置。
我一直在尝试基于此处列出的年度数据示例 将不规则时间序列转换为规则时间序列
但它不适用于频率为 23 的数据(即一年 23 个值)。我想我可以通过避免设置dd$DATUM
as.Date()
但作为一个动物园对象来解决它,该对象可以作为一个时间序列排序,每年有 23 个值。
有任何想法吗?
谢谢你的帮助
r - rollapply 与“成长”窗口
伙计们,通常当您执行以下操作时:
rollapply
从 10 个元素可用的那一刻开始计算值是非常正确的。
Unfortunately I need something that uses as much data as possible for the fist 10 observations, essentially a growing window of data till there is enough data to use a sliding window, e.g. 1, 1:2, 1:3, 1:4, etc. till we have at least 10 elements and then slide the window as usual.
Is there a better way to do this than an ugly for loop?
r - 将每小时的动物园时间序列输入函数 stl()
在你问之前,是的,我需要展示这么多数据。stl() 需要两个周期的数据。在这种情况下,一个周期是 24 个值,因此 stl() 至少需要 48 个值。
此外,从 stl() 帮助:
“....这应该是频率大于一的“ts”类对象......”
我正在升级一些旧的计算,以便我的数据采用动物园格式。到目前为止,我已经升级了每月和每日数据,没有任何明显的问题,尽管存在 stl() 速度问题。我现在只剩下每小时的数据了。
当您运行代码时,“第一次尝试”和“第二次尝试”失败,而“第三次尝试”有效。为什么?我错过了什么真正明显的事情?从“注意接下来会发生什么”部分来看,是 stl() 从 zoo 系列到 ts 系列的内部转换导致了这个问题吗?