从之前的友人处要了一份股票的数据,按他的要求写了基础的分析代码。
流程:
在将每一年每个月的全部股票的IVOL按从大到小排列后,划分为均等的5块,求每一块的EP的均值。(这之后没有做)求得全部的划分后EP均值,然后进行其他金融方法分析。
> dataO=read.csv("C:/Users/Jitao Fan/Desktop/stockData.csv")
> data=dataO
#拆分date列,创建月和年的列
> data$month=substr(data$date,1,3)
> data$year=substr(data$date,5,6)
#drop掉date列方便查看
> dataR=data[,2:6]
#创建06年1月的subset进行分析
> dataJS=subset(dataR,data$month=="Jan"& data$year=="06")
#对一月份数据集按照IVOL从大到小排序
>dataJS=dataJS[order(-dataJS$IVOL),]
#为每一行添加行号
>dataJS$rownumber=1:nrow(dataJS)
#按照行号将数据集分为均匀5块(可以看出Cut的上下限选择并不整齐,但并不影响我们使用)
>dataJS$Cut=cut(dataJS$rownumber,5)
#导入doBy包
>library('doBy')#生成相应数据块的EP值均值并观察
>result=summaryBy(ep~Cut,data=dataJS)
#也可以直接使用aggregate()方法,然后构建data.frame
>aggregate(dataJS,list(dataJS$Cut),mean)
#使用生成结果构建新的数据集(之后我朋友还会写循环把其他年月份的都统计出来,还有进一步分析,我就先不管了)> EP.mean=result$ep.mean
> Year=dataJS[1,5]
> Month=dataJS[1,4]
> IVOLRate=c("Top","Second","Third","Fourth","Fiveth")
> Final=data.frame(Year,Month,IVOLRate,EP.mean)