Thanks a lot, Jim. This is exactly what I was looking for! Dimitri On Thu, May 19, 2011 at 12:11 PM, jim holtman <jholt...@gmail.com> wrote: > try this: > > mydf<-data.frame(mydate=seq(as.Date("2011-01-01"), length = 92, by = "day")) > # add 'day' to the dataframe > mydf$day <- format(mydf$mydate, "%d") > mydf$newfactor <- cumsum(mydf$day == '20') > mydf > > On Thu, May 19, 2011 at 10:51 AM, Dimitri Liakhovitski > <dimitri.liakhovit...@gmail.com> wrote: >> Hello! >> I have a data frame with dates. I need to create a new "month" that >> starts on the 20th of each month - because I'll need to aggregate my >> data later by that "shifted" month. >> I wrote the code below and it works. However, I was wondering if there >> is some ready-made function in some package - that makes it >> easier/more elegant? >> Thanks a lot! >> >> # Example data: >> mydf<-data.frame(mydate=seq(as.Date("2011-01-01"), length = 92, by = "day")) >> (mydf) >> >> ### Creating a new variable that has one value before >> ### the 20th of each month and next value after it >> >> mydf$daynum<-as.numeric(format(mydate,"%d")) >> library(zoo) >> mydf$yearmon<-as.yearmon(mydf$mydate) >> (mydf); str(mydf) >> >> mydf$newfactor<-NA >> for(i in unique(mydf$yearmon)){ # looping through "yearmon" (important >> because true data has many years of data) >> tempdf<-mydf[mydf$yearmon == i,] >> which.month<-which(unique(mydf$yearmon)==i) >> tempdf$newfactor[tempdf$daynum<20]<-which.month >> tempdf$newfactor[tempdf$daynum>19]<-(which.month+1) >> mydf[mydf$yearmon == i,]<-tempdf >> } >> (mydf) >> >> -- >> Dimitri Liakhovitski >> Ninah Consulting >> www.ninah.com >> >> ______________________________________________ >> R-help@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. >> > > > > -- > Jim Holtman > Data Munger Guru > > What is the problem that you are trying to solve? >
-- Dimitri Liakhovitski Ninah Consulting www.ninah.com ______________________________________________ R-help@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.