2

我正在处理分时数据,并希望了解有关分时价格变化分布的一些基本信息。我的数据库由 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 函数 table() 但问题是它给了我一个长度随天数变化的表对象。第二个问题是,有一天我的点差可以达到 3 点,而之后的几天我的点差只有不到 3 点。

第一天表()输出:

 -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

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

4

2 回答 2

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
于 2012-08-02T14:48:29.260 回答
0

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

于 2012-08-02T13:45:33.070 回答