Ravi, First, install the "xts" and "zoo" packages, and use xts objects to represent your time series data. The function called read.zoo() can read your OHLC data, creating a zoo object; convert that to xts by using the as.xts() function.
Second, use the "apply.monthly" and "first" functions of xts; specifically, use apply.monthly to apply the "first" function to each month of data, extracting the first day of data. Something like this: apply.monthly(dat, first) You should be able to replace your entire code block (below) with a few calls to xts and zoo functions. As for extracting the last observation of the month, try apply.monthly function with "last" function, instead. For the 15th of the month, define a function that extracts the 15th row of a time series: fifteenth <- function(ts) ts[15,] Then apply that to every month by using apply.monthly: apply.monthly(dat, fifteenth) HTH, Paul Paul Teetor, Elgin, IL USA http://quanttrader.info/public ________________________________ From: Ravi S. Shankar <[email protected]> To: [email protected] Sent: Thu, February 3, 2011 4:34:37 AM Subject: [R-SIG-Finance] Help in generalizing code Hi R, I have a code below that looks at the first trading day of every month. Any help towards improving this is welcome. However my question is how do I generalize to look at every trading day of the every month like the last or 15th trading day of every month? dat=read.csv("z:/ S&P-OHLC.csv") dat[,1]=as.Date(dat[,1],"%m/%d/%Y") dat=dat[,-(3:4)] names(dat)[1]="Date" yy=unique(format(dat[,1],"%Y")) for(i in 1: length(yy))dat[which(format(dat[,1],"%Y")==yy[i]),4]=months(dat[which(fo rmat(dat[,1],"%Y")==yy[i]),1]) for(i in 1: (nrow(dat)-1))dat[i,5]=ifelse(dat[i,4]==dat[i+1,4],1,0) new_dat=dat[(which(dat[,5]==0)+1),] Thanks in advance for the help. Ravi This e-mail may contain confidential and/or privileged i...{{dropped:13}} _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go. [[alternative HTML version deleted]] _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.
