我正在攻读硕士学位论文,并且需要编程方面的帮助。
我想生成一个直方图,该直方图绘制公司内部人士购买/出售的股票数量上的密度。
问题在于变量“金额”非常宽泛,并且具有2589704的极值。这些值远高于平均值38,000和中位数900。最小值为1。
因此,我想生成一个具有可变中断的直方图。
我的代码如下:
hist(myInside$Amount,
breaks=c(min(myInside$Amount), seq(1000, 10000, 1000), max(myInside$Amount)),
xlab="Amounts of shares bought/ sold",
xlim=c(1,2589704),
col="blue",
freq=FALSE
)
结果如下:
在左角只有一条细线接近零。其余的都是空的,我根本不知道为什么。
有人在改进方面使直方图的类别与数据正确匹配吗?我想要从1到10,000之类的11个类,因为大多数数据都在此范围内,其余数据应汇总在最后一个类中,因此高于10,000的所有数据都在最后一个类中。
非常感谢大家的帮助。
答案 0 :(得分:0)
根据Tjebo的建议,您可以先按一定间隔切割数据:
# normal data:
myInside <- data.frame(Amount = c(rnorm(1000, 5000, 1000), 250000))
# transform data into numbered intervals:
myInside$Transform <- as.numeric(cut(myInside$Amount,
breaks = c(seq(0, 10000, by = 1000),
max(myInside$Amount))))
通话
hist(myInside$Transform,
breaks = 11,
xlab = "Classes of insider trades sizes",
col = "blue",
freq = FALSE)
然后给您:
但是,正如您所看到的,现在很难解释直方图。即使您指定类是什么,也仍然有些晦涩。也许用美元值而不是股票数量来重新定义数据可能会有所帮助(这也会增加数据的意义)。