Thanks for the responses ppl. @Gabor - The issue with your approach was that I had to select the time window for many days (124), which would be very difficult to achieve. I really appreciate you time though.
@Jeff - Your solution works. I had to tweak it a little as I needed the sequence for each second (as against the 15 min interval you had exhibited). But I was able to achieve that without much hassle. Thanks a lot, been stuck at this for almost a week :) Pasting the tweaked version for future reference. pdates <- as.POSIXct( fdates ) hstart <- new_period( hour=9, minute=15, second=0) hend <- new_period( hour=15, minute=30,second=0 ) mperiod <- new_period( second=1 ) numperday <- (hend-hstart)/mperiod dtms <- expand.grid( dt=pdates, tm=hstart + mperiod * seq( from=0, to=numperday ) ) dtms$dtm <- with( dtms, dt + tm ) dtms <- dtms[ order( dtms$dtm ), ] Regards, Shivam On Mon, May 28, 2012 at 2:51 AM, Jeff Newmiller <jdnew...@dcn.davis.ca.us>wrote: > Try this: > > # Setting TZ is optional, but I find it helps me to be more aware of # > timezone effects > Sys.setenv( TZ="Asia/Kolkata") > library(lubridate) > > pdates <- as.POSIXct( fdates ) > hstart <- new_period( hour=9, minute=15 ) > hend <- new_period( hour=15, minute=30 ) > mperiod <- new_period( minute=15 ) > numperday <- (hend-hstart)/mperiod > dtms <- expand.grid( dt=pdates, tm=hstart + mperiod * seq( from=0, > to=numperday ) ) > dtms$dtm <- with( dtyms, dt + tm ) > dtms <- dtms[ order( dtms$dtm ), ] > > You can discard everything but dtms$dtm once it has been created. > > > On Mon, 28 May 2012, Shivam wrote: > > Thanks for the effort Michael, but the problem here is that the dates for >> which the sequences need to be created have gaps in between. Basically I >> need the sequence for only those days on which the security market is open >> (I have the dates in a file which is present at the end of THIS mail). >> >> What I have been able to do is to create a list, where each element of the >> list is a sequence for a single day. It was done like below: >> >> for(i in 1:124){ >> seqtimes[[i]] = xts(,seq(as.POSIXct(paste(**fdates[i],'09:15:00', sep=" >> ")), >> as.POSIXct(paste(fdates[i],'**15:30:00', sep=" ")), by = 1))} >> >> where 'fdates' is the file which contains the dates for which the >> sequences >> need to be created. >> >> But now I am stuck. I need a way to get all these sequences in a >> (vector/dataframe/xts object) where all the list items are sequentially >> present. >> >> I tried merge.xts, but to no avail. >> >> seqtimes[[1]] >>> >> Data: >> numeric(0) >> >> Index: >> POSIXct[1:22501], format: "2011-01-03 09:15:00" "2011-01-03 09:15:01" >> "2011-01-03 09:15:02" "2011-01-03 09:15:03" "2011-01-03 09:15:04" >> "2011-01-03 09:15:05" ... >> >> seqtimes[[2]] >>> >> Data: >> numeric(0) >> >> Index: >> POSIXct[1:22501], format: "2011-01-04 09:15:00" "2011-01-04 09:15:01" >> "2011-01-04 09:15:02" "2011-01-04 09:15:03" "2011-01-04 09:15:04" >> "2011-01-04 09:15:05" ... >> >> tseq = merge.xts(seqtimes[[1]],**seqtimes[[2]], all = TRUE) >>> tseq >>> >> Data: >> numeric(0) >> >> Index: >> integer(0) >> >> Any help would be greatly appreciated. >> >> Thanks in advance, >> Regards, >> Shivam >> >> P.S. - The dput of the fdates file: >> >> dput(fdates) >>> >> structure(c("2011-01-03", "2011-01-04", "2011-01-05", "2011-01-06", >> "2011-01-07", "2011-01-10", "2011-01-11", "2011-01-12", "2011-01-13", >> "2011-01-14", "2011-01-17", "2011-01-18", "2011-01-19", "2011-01-20", >> "2011-01-21", "2011-01-24", "2011-01-25", "2011-01-27", "2011-01-28", >> "2011-01-31", "2011-02-01", "2011-02-02", "2011-02-03", "2011-02-04", >> "2011-02-07", "2011-02-08", "2011-02-09", "2011-02-10", "2011-02-11", >> "2011-02-14", "2011-02-15", "2011-02-16", "2011-02-17", "2011-02-18", >> "2011-02-21", "2011-02-22", "2011-02-23", "2011-02-24", "2011-02-25", >> "2011-02-28", "2011-03-01", "2011-03-03", "2011-03-04", "2011-03-07", >> "2011-03-08", "2011-03-09", "2011-03-10", "2011-03-11", "2011-03-14", >> "2011-03-15", "2011-03-16", "2011-03-17", "2011-03-18", "2011-03-21", >> "2011-03-22", "2011-03-23", "2011-03-24", "2011-03-25", "2011-03-28", >> "2011-03-29", "2011-03-30", "2011-03-31", "2011-04-01", "2011-04-04", >> "2011-04-05", "2011-04-06", "2011-04-07", "2011-04-08", "2011-04-11", >> "2011-04-13", "2011-04-15", "2011-04-18", "2011-04-19", "2011-04-20", >> "2011-04-21", "2011-04-25", "2011-04-26", "2011-04-27", "2011-04-28", >> "2011-04-29", "2011-05-02", "2011-05-03", "2011-05-04", "2011-05-05", >> "2011-05-06", "2011-05-09", "2011-05-10", "2011-05-11", "2011-05-12", >> "2011-05-13", "2011-05-16", "2011-05-17", "2011-05-18", "2011-05-19", >> "2011-05-20", "2011-05-23", "2011-05-24", "2011-05-25", "2011-05-26", >> "2011-05-27", "2011-05-30", "2011-05-31", "2011-06-01", "2011-06-02", >> "2011-06-03", "2011-06-06", "2011-06-07", "2011-06-08", "2011-06-09", >> "2011-06-10", "2011-06-13", "2011-06-14", "2011-06-15", "2011-06-16", >> "2011-06-17", "2011-06-20", "2011-06-21", "2011-06-22", "2011-06-23", >> "2011-06-24", "2011-06-27", "2011-06-28", "2011-06-29", "2011-06-30" >> ), .Dim = c(124L, 1L)) >> >> >> >> On Sat, May 26, 2012 at 6:22 AM, R. Michael Weylandt < >> michael.weyla...@gmail.com> <michael.weyla...@gmail.com> wrote: >> >> One (somewhat kludgy) way would be to use seq() to make one day's worth >>> of >>> times then to pass those to outer() to add in the needed days and then >>> coerce the whole thing back to a sorted vector. >>> >>> I'm not at a computer right now so this won't be quite right but >>> something >>> like >>> >>> >>> x <- seq(x.start.first.day, x.end.first.day, by = "sec") >>> >>> y <- 24*60*60 *(1:n.days) >>> >>> sort(as.vector(outer(x, y, "+"))) >>> >>> Changing the order of x and y might make the sort unnecessary. >>> >>> M >>> >>> On May 25, 2012, at 1:14 PM, Shivam <shivamsi...@gmail.com> wrote: >>> >>> Hi All, >>>> >>>> I have a query about time based sequences. I know such questions have >>>> >>> been >>> >>>> asked a lot on forums, but I couldnt find the exact thing that I was >>>> looking for. >>>> >>>> I want to create a time-based sequence which will mimic the trading >>>> >>> window >>> >>>> AND would span multiple days. Something like below: >>>> >>>> "2011-01-03 09:15:00 IST" >>>> "2011-01-03 09:15:01 IST" >>>> .... >>>> .... >>>> .... >>>> "2011-01-03 15:29:59 IST" >>>> "2011-01-03 15:30:00 IST" >>>> "2011-01-04 09:15:00 IST" >>>> "2011-01-04 09:15:01 IST" >>>> .... >>>> .... >>>> .... >>>> "2011-01-04 15:29:59 IST" >>>> "2011-01-04 15:30:00 IST" >>>> >>>> Kindly notice the change of date in the sequence. >>>> >>>> The Indian Equity markets open at 09:15:00 and close at 15:30:00. I have >>>> equity data that spans 124 days, and I need to create a corresponding >>>> sequence which I will later use to regularize the irregular dataset to >>>> >>> make >>> >>>> a regular time-series. >>>> >>>> I was able to accomplish this task for a single day (i.e. creating a >>>> sequence then merging my dataset with it and use na.locf to make my >>>> >>> dataset >>> >>>> regular) but am unable to create a sequence for 'n' number of days. Can >>>> anyone help me with this? >>>> >>>> If it is of any help, I have a file which contains all the dates for >>>> >>> which >>> >>>> I need the sequence. The dput of the file is placed at the end of the >>>> email. >>>> >>>> One option is to create sequences for the entire days and then later >>>> >>> remove >>> >>>> all these records after merging. Although I havent checked the >>>> >>> feasibility >>> >>>> of this method, it would be complex and more so it will increase the >>>> data >>>> four folds (I already have 2 million records in the dataframe which I >>>> >>> have >>> >>>> to make regular). >>>> >>>> Another approach that I could think of was to make a timebased sequence >>>> based on the date from the file and then use a loop to append one >>>> >>> sequence >>> >>>> after another. But am not having much success there either. >>>> >>>> Any kind of help would be greatly appreciated. >>>> >>>> Thanks and regards, >>>> Shivam >>>> >>>> structure(list("20110103", "20110104", "20110105", "20110106", >>>> "20110107", "20110110", "20110111", "20110112", "20110113", >>>> "20110114", "20110117", "20110118", "20110119", "20110120", >>>> "20110121", "20110124", "20110125", "20110127", "20110128", >>>> "20110131", "20110201", "20110202", "20110203", "20110204", >>>> "20110207", "20110208", "20110209", "20110210", "20110211", >>>> "20110214", "20110215", "20110216", "20110217", "20110218", >>>> "20110221", "20110222", "20110223", "20110224", "20110225", >>>> "20110228", "20110301", "20110303", "20110304", "20110307", >>>> "20110308", "20110309", "20110310", "20110311", "20110314", >>>> "20110315", "20110316", "20110317", "20110318", "20110321", >>>> "20110322", "20110323", "20110324", "20110325", "20110328", >>>> "20110329", "20110330", "20110331", "20110401", "20110404", >>>> "20110405", "20110406", "20110407", "20110408", "20110411", >>>> "20110413", "20110415", "20110418", "20110419", "20110420", >>>> "20110421", "20110425", "20110426", "20110427", "20110428", >>>> "20110429", "20110502", "20110503", "20110504", "20110505", >>>> "20110506", "20110509", "20110510", "20110511", "20110512", >>>> "20110513", "20110516", "20110517", "20110518", "20110519", >>>> "20110520", "20110523", "20110524", "20110525", "20110526", >>>> "20110527", "20110530", "20110531", "20110601", "20110602", >>>> "20110603", "20110606", "20110607", "20110608", "20110609", >>>> "20110610", "20110613", "20110614", "20110615", "20110616", >>>> "20110617", "20110620", "20110621", "20110622", "20110623", >>>> "20110624", "20110627", "20110628", "20110629", "20110630"), .Dim = >>>> c(124L, >>>> 1L), .Dimnames = list(c("X1", "X2", "X3", "X4", "X5", "X6", "X7", >>>> "X8", "X9", "X10", "X11", "X12", "X13", "X14", "X15", "X16", >>>> "X17", "X18", "X19", "X20", "X21", "X22", "X23", "X24", "X25", >>>> "X26", "X27", "X28", "X29", "X30", "X31", "X32", "X33", "X34", >>>> "X35", "X36", "X37", "X38", "X39", "X40", "X41", "X42", "X43", >>>> "X44", "X45", "X46", "X47", "X48", "X49", "X50", "X51", "X52", >>>> "X53", "X54", "X55", "X56", "X57", "X58", "X59", "X60", "X61", >>>> "X62", "X63", "X64", "X65", "X66", "X67", "X68", "X69", "X70", >>>> "X71", "X72", "X73", "X74", "X75", "X76", "X77", "X78", "X79", >>>> "X80", "X81", "X82", "X83", "X84", "X85", "X86", "X87", "X88", >>>> "X89", "X90", "X91", "X92", "X93", "X94", "X95", "X96", "X97", >>>> "X98", "X99", "X100", "X101", "X102", "X103", "X104", "X105", >>>> "X106", "X107", "X108", "X109", "X110", "X111", "X112", "X113", >>>> "X114", "X115", "X116", "X117", "X118", "X119", "X120", "X121", >>>> "X122", "X123", "X124"), NULL)) >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________**________________ >>>> R-help@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >>>> PLEASE do read the posting guide >>>> >>> http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html> >>> >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>> >>> >> >> >> -- >> *Victoria Concordia Crescit* >> >> [[alternative HTML version deleted]] >> >> ______________________________**________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >> PLEASE do read the posting guide http://www.R-project.org/** >> posting-guide.html <http://www.R-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> >> > ------------------------------**------------------------------** > --------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > ------------------------------**------------------------------** > --------------- > -- *Victoria Concordia Crescit* [[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.