[R] Cross posted Re: Creating quintiles on monthly basis
David Winsemius
dwinsemius at comcast.net
Sat Apr 6 03:10:11 CEST 2013
Also posted at StackOverflow but now has an example dataset there.
Cedric: You are requested not to cross-post to Rhelp. There are many other requests in the Posting Guide as well including a request that you not post in HTML.
--
David.
On Apr 5, 2013, at 5:20 PM, Cedric Suykens wrote:
> Hi,
>
> I am trying in R to indicate in which quintile a value of a variable is for
> every month of my data frame in this case based on volatility. For each
> month I want to know for each stock if it is in the most volatile quintile
> of if it is in one of the others.
>
> So far I have come up with the following function (see below).
> Unfortunately, the function only works in some cases and often gives the
> following error:
>
> Error in cut.default(df$VOLATILITY, unique(breaks), label = FALSE, na.rm
> =TRUE):
>
> invalid number of intervals
>
> Could you give me some advice on how to improve this code so that it works
> properly.
>
> It's relatively urgent. Many thanks!
>
> quintilesVolByMonth <- function(x){
>
> months<-as.vector(unique(x$DATE))
>
> dfx<-data.frame()
>
> for(n in seq(1,length(months))){
>
> num<-5
>
> print(paste("Appending month",months[n],sep=""))
>
> df<-subset(x,DATE==months[n])
>
> breaks<-quantile(df$VOLATILITY,probs=seq(0,1, 1/num),na.rm=TRUE)
>
> df$volquintile <- cut(df$VOLATILITY,unique(breaks),
>
> label=FALSE, na.rm=TRUE)
>
> dfx<-rbind(dfx,df)
>
> }
>
> return(dfx)
>
> }
>
> Frame.Quintile <- quintilesVolByMonth(x)
>
>
>
>
>
> Example of data: (I have 30 years of monthly data for over 1000 stocks)
> Variable 'VolQuintile' is what I am trying to get.
>
>
>
> DATE STOCK VOLATILITY VolQuintile
>
> 01/01/1990 STOCK 1 0.3
> 1
>
> 01/01/1991 STOCK 2 0.15
> 4
>
> 01/05/1992 STOCK 3 0.1
> 3
>
> .
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list