1

我正在处理一些与期货价格相关的相当大的时间序列数据集,并且正在将我之前在 Excel 中进行的一些计算转换为 R。到目前为止,这种转换相对简单,但我有一些我在 Excel 中使用 R 中的累积频率分布复制直方图时遇到了麻烦。如果您熟悉 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 函数,就像我提到的那样,我在 a) 部分中遇到了麻烦

e) 最后(目前)我如何将 CFD 叠加到我的直方图上?

如果您需要任何其他信息或颜色以帮助我,请告知,并提前非常感谢您的回复!

4

0 回答 0