我有一个包含1465个观测值和1074个变量的数据帧。每列是一个日期,每一行都是不同的股票代码。我需要为每个日期排序代码。
到目前为止,我一直坚持甚至只对数据集中的一列进行排名。在搜索互联网后,大多数消息来源似乎建议使用cut(X, quantile(X,(0:10)/10, include.lowest=TRUE
。我试过了:
DecRanking <- Volume
DecRanking <- as.data.frame(DecRanking)
DecRanking2 <- NULL
DecRanking2 <- cut(DecRanking[,1], quantile(DecRanking[,1],(0:10)/10),include.lowest=TRUE)
DecRanking2 <- cut(DecRanking$X1.6.1995, quantile(DecRanking$X1.6.1995,(0:10)/10),include.lowest=TRUE)
这会给出错误:'breaks' are not unique
。在unique()
中包含五分位函数时,它会显示一个完全错误的输出:
> head(DecRanking2)
[1] (1e+03,1.93e+04] [0,1e+03] [0,1e+03] (1e+03,1.93e+04] [0,1e+03] (1e+03,1.93e+04]
Levels: [0,1e+03] (1e+03,1.93e+04] (1.93e+04,4.33e+07]
如何解决此问题以及如何实现所有列的计算?
编辑:
> head(DecRanking)
X1.6.1995 X1.13.1995 X1.20.1995 X1.27.1995 X2.3.1995 X2.10.1995 X2.17.1995 X2.24.1995 X3.3.1995 X3.10.1995 X3.17.1995
1 4300 0 0 3300 9900 200 200 400 3100 0 700
2 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0
4 13700 4700 39400 2400 37645 51486 10000 41650 400 12007 22500
5 0 0 0 0 0 0 0 0 0 0 0
6 10300 6500 0 2500 4800 2500 0 15700 20 0 0
这只是数据的摘录。因为害怕说明显而易见 - 数据显然有1,465行和1074列