我正在处理与期货价格相关的一些相当大的时间序列数据集,并且正在将我之前在Excel中执行的一些计算转换为R.此转换迄今为止相对简单但我我在使用它们在Excel中的累积频率分布复制我的直方图时遇到了一些麻烦。如果您熟悉Excel,则数据分析工具包中的直方图功能会自动创建累积频率分布表,其中包含每个的累积百分比,在本例中为直方图旁边的价格水平。
我使用ggplot创建了一些基本直方图有一些成功,以下是该代码的片段:
ggplot(data=CrudeRaw, aes(x=CrudeRaw$X7_1_F))+
geom_histogram(breaks=seq(X7_F_M_L, X7_F_M_H, by=0.01),
col="blue",
fill="white",
alpha= 0.2)+
labs(title="X7 1 Month Price Distribution", x="Price Levels",
y="Frequency") +
xlim(c(X7_F_M_L, X7_F_M_H)) +
ylim(c(0,100))
有关格式和用法的几个问题。
a)CrudeRaw是一个包含大约276行的数据帧,不少于50列。出于本项目的目的,我将数据分为20个周期,60个周期,120个周期,180个周期和240个周期子集。数据按时间顺序排列。
问题:ggplot不能采用数值数据类型,只能采用数据帧,因此我只能将整个df提供给它,即使我有兴趣为上述子集创建分布。有没有办法可以做到这一点?
b)如何让每个箱子(价格)显示在x轴上,而不是每隔5个箱子(-15,-10,-5,0,5 ......,15)标记一个数字?
c)我已使用以下代码
成功创建了累积频率表round(cbind(cumsum(table(X7_F)))/NROW(X7_F),2)
但是我想要一种方法来a)将这些表(其中有很多表)输出到CSV文件中,或者理想地创建一个"报告" R的种类可以保存为pdf,甚至可以保存在与表/数据相关的直方图中。
d)我已经对如何将数据输出到CSV文件进行了一些搜索,但是从我的例子中我不知道如何将多个数组输出到同一个工作表或工作簿中。也就是说,我想将20,60,120,180和240期间的价格数组输出到同一个工作簿。我想通过创建另一个数据帧然后我可以将这些数据子集传递给ggplot函数,就像我提到的那样,我在部分方面遇到了麻烦。)
e)最后(现在)如何将CFD叠加到直方图上?
请告知您是否需要任何其他信息或颜色以帮助我,并提前感谢您的回复!