现在需要对股票的报价数据按日期和股票代码两个维度做数据分区。如果简单的按股票的首字母进行范围分区,极易造成数据分布不均,因为极少量的股票代码以U, V, X,Y,Z等字母开头。请问应该如何解决这个问题?
现在需要对股票的报价数据按日期和股票代码两个维度做数据分区。如果简单的按股票的首字母进行范围分区,极易造成数据分布不均,因为极少量的股票代码以U, V, X,Y,Z等字母开头。请问应该如何解决这个问题?
6 回答3.5k 阅读✓ 已解决
4 回答2k 阅读
2 回答2.5k 阅读
1 回答1k 阅读✓ 已解决
2 回答1.5k 阅读
2 回答1.8k 阅读
1 回答1k 阅读✓ 已解决
为了方便根据数据的分布进行分区,DolphinDB提供了函数cutPoints(X, N, [freq])。这里X是一个数组,N指需要产生多少组, 而freq是X的等长数组,其中每个元素对应着X中元素出现的频率。函数返回具有(N + 1)个元素的数组,代表N个组,使得X中的数据均匀地分布在这N个组中。
下面的例子中,需要对股票的报价数据按日期和股票代码两个维度做数据分区。如果简单的按股票的首字母进行范围分区,极易造成数据分布不均,因为极少量的股票代码以U, V, X,Y,Z等字母开头。我们这里使用使用
cutPoints
函数根据2007.08.01这天的数据将股票代码划为128个分区,每个分区在这天含有相同数量的记录: