alldat$yearmonth <- substr(alldat$mydate, 1, 7)
________________________________ From: Anna Dunietz <anna.duni...@gmail.com> Cc: "r-help@r-project.org" <r-help@r-project.org> Sent: Wednesday, September 14, 2011 3:21 AM Subject: Re: [R] Deleting Rows based on Factor and Time Period Mikkel - thank you so much! That's a great start! I could change my demands a bit and pick out the first stock each month. The first stock each week is helpful, but I would need a bigger gap between dates - hence, the first stock a month would be much better. It seems to me, however, that isoWeekYear is great for week and year but not so great for month. If you ha[[elided Yahoo spam]] Thanks! Anna The following will get you the first stock in each week. Is that useful? > >install.packages("surveillance") >library(surveillance) >alldat$year <- isoWeekYear(alldat$mydate)$ISOYear >alldat$week <- isoWeekYear(alldat$mydate)$ISOWeek >alldat <- alldat[order(alldat$year, alldat$week), ] >alldat[!duplicated(paste(alldat$year, alldat$week, alldat$myeq)), ] > > > > >----- Original Message ----- >From: Anna Dunietz <anna.duni...@gmail.com> >To: r-help@r-project.org >Cc: >Sent: Tuesday, September 13, 2011 9:04 AM >Subject: [R] Deleting Rows based on Factor and Time Period > >Hi All! > >I have been messing around with this problem for about a week but to no >avail! The following data has been cut down in order to make my question >reproducible. The alldat data frame includes 2 columns: 1 date column and 1 >factor column (equity names)). > >mydate<-as.Date(c("2001-07-02","2001-07-02","2001-07-03","2001-07-03","2001-07-05","2001-07-05","2001-07-10","2001-07-13","2010-01-27"),origin="1970-01-01") > >myeq<-factor(c("FCX.UN.Equity","TIE.UN.Equity","FCX.UN.Equity","TIE.UN.Equity","FCX.UN.Equity","TIE.UN.Equity","TIE.UN.Equity","L.UN.Equity","FCX.UN.Equity")) > >alldat<-data.frame(mydate,myeq) > > >> alldat mydate myeq >1 2001-07-02 FCX.UN.Equity >2 2001-07-02 TIE.UN.Equity >3 2001-07-03 FCX.UN.Equity >4 2001-07-03 TIE.UN.Equity >5 2001-07-05 FCX.UN.Equity >6 2001-07-05 TIE.UN.Equity >7 2001-07-10 TIE.UN.Equity >8 2001-07-13 L.UN.Equity >9 2010-01-27 FCX.UN.Equity > > >I group respective factors together by using the split function. For each >respective factor, I am interested in deleting the rows that entail dates >that are less than or equal to the *first* stock in that column + 6. Repeat >the following sentence, but instead of *first* use second, third, etc. In >short, I do not want an equity that has dates within a week of one another >at any point in the data frame/list (depending on if you're looking at >alldat or divall). For example, for FCX.UN.Equity, I would only want the >row beginning with 2001-07-02 to remain, as well as the row starting with >2010-01-27. I cannot delete rows immediately because I need all rows in >order to determine which rows to delete. > >diveq<-alldat$myeq >divall<-split(alldat,diveq) > >I try to pick out those rows that I want to delete by using a double loop >(inefficient and awful, I know). For better or for worse, the double loop >does not work. I get integer(0) for all elements of workin. I put the >second condition in the which function, so that the first date is saved. I >use the third condition, so that the dates looked at are all greater than or >equal than the date being looked at. I have spent many, many hours on this >and can still not figure it out. > >workin<-list() > for(j in 1:length(divall)){ > for(i in 1:nrow(divall[[j]])){ > workin[[j]]<-which(divall[[j]][,1]<=divall[[j]][i,1]+6 & >divall[[j]][,1]!=divall[[j]][i,1] & divall[[j]][,1]>=divall[[j]][i,1]) > }} > >If I could get the workin list to work, I would use unique and unlist in >order to find the index that would show me which rows in divall/alldat need >to be deleted. > >I hope this has been clear. Please let me know if you need any more >information! > [[elided Yahoo spam]] >Anna > > [[alternative HTML version deleted]] > >______________________________________________ >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. > > [[alternative HTML version deleted]]
______________________________________________ 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.