我正在使用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()输出的数据框。 任何的想法? 感谢
答案 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天的频率分布只是连接数据并执行相同的操作。那是你想要做的吗?