问题标签 [tibbletime]

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.

0 投票
2 回答
347 浏览

r - 如何创建带有参数化日期的 tibbletime 时间序列?

我想为特定日期创建一个带有 tibbletime 的时间序列。我有:

我想创建一个带有微小样本的时间序列,例如:

参数应该是一个 time_formula,在第 17 页描述: https ://cran.r-project.org/web/packages/tibbletime/tibbletime.pdf

这有效,但我无法传递以下参数:

已经尝试了不同的方法来转换字符串,但到目前为止没有任何效果:(

0 投票
3 回答
152 浏览

r - 过滤日内数据 R

我正在尝试过滤日内数据以仅包含一天中的特定时间段。某些软件包中是否有实现此目的的技巧。这是示例数据:

我想每天只包括 10:00:00 - 18:35:00,但不能很好地做到这一点。我现在的解决方案是创建额外的指示列,然后按它们过滤,但它也没有很好地工作。

0 投票
1 回答
89 浏览

r - tibbletime - 前一天的收盘价

请耐心等待,因为这是我在这里的第一个问题。我仍在试图弄清楚如何发布我已经拥有的数据和代码,所以现在我将尝试解释一下。如果这不是可以接受的提问方式,请忽略这个问题,下次我会尝试做对。

我有一个数据框,我想对其进行日常计算。对于特定的一天,我已经有了 OpenUnits、BuyUnits、SellUnits、CloseUnits 和 Interest。这些值是由另一个系统计算的。我需要根据售出的单位数量来分配每日利息。我可以进行计算,但如果不在数据框上使用 for 循环,我无法弄清楚如何获得 OpenInterest(前一天的收盘价)。ClosingInterest 应该是 OpenInterest + Interest - SellUnits/OpenUnits * OpenInterest

我尝试使用 mutate(OpenInterest = lag(ClosingInterest), ClosingInterest = OpenInterest + Interest - SellUnits/OpenUnits * OpenInterest),但这似乎不起作用。

我的代码使用 for 循环,但我希望可能有更好、更快的方法。

问候

这不会产生正确的答案。

正确答案应该是这样的。这是我通过一个 for 循环实现的,我试图避免这种循环,因为它在嵌套的更大数据集上感觉很慢。

生成正确答案的代码。

0 投票
1 回答
117 浏览

r - 分组 tibbletime 并使用 collapse_index,得到奇怪的结果

我有一个文件(appx 9K 记录),我想首先根据组聚合,然后在彼此相隔 7 天内的日期聚合。但是,我不明白为什么结果看起来像他们一样。我意识到还有其他方法可以通过这个特定的示例获得相同的结果,但它会变得更加复杂,并且还有其他原因我对使用 tibbletime 感兴趣。这是一个可重现的示例:

我想要做的是,从每家咖啡馆的第一份报告开始,将彼此在 7 天内提交的健康报告计算为仅一份报告,这样就不会被过度计算。

首先,我尝试使用“7 天”作为期间:

这不是我想要的。如果有效,cafe 1001 的所有四个报告将具有相同的滚动日期,因为它们都在 7 天内。那么为什么在结果列中拆分成两个日期呢?

只是玩弄它,我尝试使用“每周”而不是“7天”,然后我得到了这个结果:

咖啡馆 1001 正是我想要的,但是咖啡馆 2002 和 3003 的日期相同(不同的年份),但结果却不同。

咖啡馆 4004 是我想要的组合,但咖啡馆 4005 之间只有 6 天,所以这些也应该组合在一起。(我稍后会总结/计算它们)

任何想法为什么会发生这种情况?谢谢!!

0 投票
2 回答
50 浏览

r - 验证时间序列索引

我正在使用按包group_by功能分组的数据集dplyr。每个组都有它自己的时间索引,即假定由 12 个月的序列组成。这意味着它可以从 1 月开始,到 12 月结束,或者在其他情况下,它可以从前一年的 6 月开始,到明年 5 月结束。

这是数据集示例:

问题是如果存在所谓的“跳跃”,换句话说,如果日期是一致的,由于数据集的维度,我无法确认或验证视觉。r 中是否有任何简单的方法可以做到这一点,也许是对 package.json 函数的一些修改/组合tibbletime

任何帮助将不胜感激。

先感谢您。

0 投票
0 回答
391 浏览

r - R中的异常化包-> mutate_impl(.data,dots)中的错误

在查看了所有相关帖子之后,我还没有找到一个可以接受的工作解决方案。因此,我决定再试一次!

mutate_impl(.data, dots) 中的错误:评估错误:对于 Date 类的索引,只允许使用年、季度、月、周和日期间

test_long$Date <- as.Date(test_long$Date, "%m-%d-%Y")

test_long %>% + time_decompose(count) %>% + anomalize(remainder) %>% + time_recompose() %>% + plot_anomalies(time_recomposed = TRUE, ncol=3, alpha_dots = 0.25)

注意:索引未排序。tibbletime 假设索引是升序的。结果可能不如预期。

mutate_impl(.data, dots) 中的错误:评估错误:对于 Date 类的索引,只允许使用年、季度、月、周和日期间。

str(test_long$Date) 日期[1:5719],格式:“2016-01-27”“2016-01-28”“2016-01-29”“2016-01-30”“2016-01-31” “2016-02-01” “2016-02-02” “2016-02-03” “2016-02-04” “2016-02-05” “2016-02-06” ...

如果这篇文章不够清楚,我提前道歉。这是我的第一篇文章。

0 投票
0 回答
101 浏览

r - 按 R 中选择的时间段对时间序列 OHLC 数据进行分组

R 中的 xts 和 zoo 库中有几个函数,它们试图将金融 OHLC(V) 数据从低粒度聚合到更高粒度,以及新来的 tibbletime::to_period,它对 tibble 执行相同的任务。然而,所有这些都遭受同样的低效率:当我们说一小时聚合时,它们将循环时间作为间隔的起点和终点,即边界将是上午 8 点、上午 9 点、上午 10 点,... 如果我有 15 分钟蜡烛的数据,我如何聚合 OHLC(V),以便按 1 H 间隔而不是轮次聚合?

如何将上述小标题聚合为 30M、1H、2H 和 4H,以便组具有所需的长度?例如,按 1H 汇总的最后一组将从 12:45:00 到 13:30:00 拿 4 支蜡烛,从 11:45:00 拿 2H,......我试过了

具有各种参数组合,但没有产生所需的结果。此外,按特定间隔内的蜡烛数分组也无济于事,因为现实世界的数据存在差距。

0 投票
1 回答
142 浏览

r - 从 R 中的异常库运行 time_decompose 函数时收到错误消息

安装 R base 和 R studio 并从以下位置运行标准示例后:https ://www.rdocumentation.org/packages/anomalize/versions/0.1.1/topics/time_decompose 。

我得到错误:

Error in !.key : invalid argument type

我尝试使用as_tibbleandas_tbl_time函数准备数据无济于事,得到同样的错误。

我希望看到一个时间分解的对象,但会收到上面提到的错误消息。

0 投票
1 回答
55 浏览

r - dplyr 和 tibbletime。对象不属于“til_time”类。时间聚合的一般方法

我是 dplyr 和 tibbletime 软件包的新手,并且有以下目标。我需要总结在 24 小时的同一时间间隔内发生的交易数量(数据集中的数量)。例如,我在 1 小时内有 3 笔交易,数量分别为 300、200 和 100,我希望在整个交易日的一小时内以相同的方式将它们加起来为 600。我尝试了以下方法:

帮助我解决这个问题或建议另一种方式来完成我的目标。谢谢!下面附上html代码格式的数据头部(第一个刻度值):

0 投票
3 回答
88 浏览

r - 如何在 R 中的非连续行中对日期序列进行重复数据删除?

我想在我的数据中标记至少 31 天的每个窗口中的第一个日期id
数据:

想要标记的行是第 1、4、6、7 和 10 行;这些行表示index_date给定id的第一行或从先前标记的给定index_date的 31 天跳过期后的第一行。 代码:index_dateid

结果:

为什么此代码标记第 8 行(在之前标记为 thatindex_date之后不到 31 天)而不是第 10 行,我该如何解决这个问题?index_dateid

更新:按照@mnaR99 的建议,
将选项添加start_date = first(index_date)collapse_index(),成功标记了原始示例中的正确行。但是,当我将相同的原理应用于新数据时,我遇到了一个问题:
数据:


我现在想以与之前应用 31 天窗口相同的方式应用 2 天窗口(也就是说,不应同时标记连续的日历日)。想要标记的行是第 1、3、4、6、8、9 和 11 行,因为这些行要么是特定 `id` 的第一个 `index_date`,要么是两天跳过后的第一个。
代码:

结果:

第 7 行错误地标记为 TRUE,第 8 行错误地标记为 FALSE。
当我应用purrr@tmfmnk 建议的解决方案时,我得到了正确的结果。
代码:

结果:

tibbletime这个例子中的方法有什么问题?