R:高频数据统计分析

时间:2012-08-02 09:48:35

标签: r statistics time-series finance xts

我正在使用tick数据,并希望获得有关滴答价格变化分布的一些基本信息。我的数据库是在10个开放日期间由刻度数据组成的。 我已经采取了价格的第一个区别:

                     Tick spread
2010-02-02 08:00:04   -1
2010-02-02 08:00:04    1
2010-02-02 08:00:04    0
2010-02-02 08:00:04    0
2010-02-02 08:00:04    0
2010-02-02 08:00:04   -1
2010-02-02 08:00:05    1
2010-02-02 08:00:05    1

我创建了一个数组,它为我提供了每天的第一个和最后一个标记:

       Open  Close
[1,]      1  59115
[2,]  59116 119303
[3,] 119304 207300
[4,] 207301 351379
[5,] 351380 426553
[6,] 426554 516742
[7,] 516743 594182
[8,] 594183 683840
[9,] 683841 754962
[10,] 754963 780725

我想知道每天我的蜱传播的经验分布。 我知道我可以使用R函数表(),但问题是它给了我一个表对象,其长度随天数而变化。第二个问题是,有一天我可以获得3分的点差,而在我只有不到3点的点差之后的几天。

第一天table()输出:

 -3    -2    -1     0     1     2     3 
  1    19  6262 46494  6321    16     2

第二天table()输出:

-2    -1     0     1     2     3     5 
27  5636 48902  5588    33     1     1

我想要的是为我的整个tick样本创建一个包含所有table()输出的数据框。 任何的想法? 感谢

2 个答案:

答案 0 :(得分:2)

只需使用二维表,使用as.Date(index(x))作为行:

# create some example data
set.seed(21)
p <- sort(runif(6))*(1:6)^2
p <- c(p,rev(p)[-1])
p <- p/sum(p)
P <- sample(-5:5, 1e5, TRUE, p)
x <- .xts(P, (1:1e5)*5)
# create table
table(as.Date(index(x)), x)
#             x
#                -5   -4   -3   -2   -1    0    1    2    3    4    5
#   1970-01-01   22  141  527 1623 2968 6647 2953 1700  538  139   21
#   1970-01-02   31  142  548 1596 2937 6757 2874 1677  529  167   22
#   1970-01-03   26  172  547 1599 2858 6814 2896 1681  504  163   20
#   1970-01-04   23  178  537 1645 2855 6805 2891 1626  537  165   18
#   1970-01-05   23  139  490 1597 3028 6740 2848 1724  505  158   28
#   1970-01-06   21  134  400 1304 2266 5496 2232 1213  397  112   26

答案 1 :(得分:0)

如果您希望整个10天的频率分布只是连接数据并执行相同的操作。那是你想要做的吗?