[R] Start and End day of a month

arun smartpink111 at yahoo.com
Fri Sep 28 06:33:49 CEST 2012


HI Joshua,

Thanks for providing much easier solution.

But, I am getting the output from dat1 as:
#  inputDate           startDate             endDate
#1 2012-09-27 2012-09-27 00:00:01 2012-09-27 23:59:59
#2 2012-09-28 2012-09-28 00:00:01 2012-09-28 23:59:59
#3 2012-07-24 2012-07-24 00:00:01 2012-07-24 23:59:59
#4 2012-06-05 2012-06-05 00:00:01 2012-06-05 23:59:59
#5 2012-12-03 2012-12-03 00:00:01 2012-12-03 23:59:59

OP's request: 

"Can anyone please help to get "StartDay" and "End-day of a particular date" with time ? 
For eg:- Input wil be "2012-09-27" 
i need to get output as given below 

StartDt <- "2012-09-01 12:00:01 AM" 
EndDt <- "2012-09-30 11:59:59 PM" "

May be there is something you forgot to add in the reply.

A.K.





----- Original Message -----
From: Joshua Ulrich <josh.m.ulrich at gmail.com>
To: arun <smartpink111 at yahoo.com>
Cc: Rantony <antony.akkara at ge.com>; R help <r-help at r-project.org>
Sent: Thursday, September 27, 2012 11:26 PM
Subject: Re: [R] Start and End day of a month

On Thu, Sep 27, 2012 at 3:05 PM, arun <smartpink111 at yahoo.com> wrote:
> HI,
> For a vector of dates:
> Using Michael's suggestion:
> library(xts)
> library(zoo)
> Dt<-c("2012-09-27","2012-09-28","2012-07-24","2012-06-05","2012-12-03")
> newDt<-strsplit(format(as.yearmon(Dt),"%Y-%m"),split="-")
> StartDt<-do.call(rbind,lapply(lapply(lapply(newDt,`[`,1:2),function(x)
>  as.numeric(c(x[1],x[2]))),function(x)
> format(firstof(x[1],x[2],sec=1),format="%Y-%m-%d %r")))
> EndDt<-do.call(rbind,lapply(lapply(lapply(newDt,`[`,1:2),function(x)
>  as.numeric(c(x[1],x[2]))),function(x)
> format(lastof(x[1],x[2]),format="%Y-%m-%d %r")))
> dat1<-data.frame(inputDate=Dt,StartDt=StartDt,EndDt=EndDt)
> dat1
> #   inputDate                StartDt                  EndDt
> #1 2012-09-27 2012-09-01 12:00:01 AM 2012-09-30 11:59:59 PM
> #2 2012-09-28 2012-09-01 12:00:01 AM 2012-09-30 11:59:59 PM
> #3 2012-07-24 2012-07-01 12:00:01 AM 2012-07-31 11:59:59 PM
> #4 2012-06-05 2012-06-01 12:00:01 AM 2012-06-30 11:59:59 PM
> #5 2012-12-03 2012-12-01 12:00:01 AM 2012-12-31 11:59:59 PM
>
> A.K.
>
>
That code is very difficult to follow.  This is much clearer:

dat1 <- data.frame(inputDate=Dt,
  startDate=do.call(c,lapply(Dt, firstof, 0, 0, 1)),
  endDate=do.call(c,lapply(Dt, lastof, 23, 59, 59)))

--
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com


>
> ----- Original Message -----
> From: R. Michael Weylandt <michael.weylandt at gmail.com>
> To: Rantony <antony.akkara at ge.com>
> Cc: r-help at r-project.org
> Sent: Thursday, September 27, 2012 11:33 AM
> Subject: Re: [R] Start and End day of a month
>
> On Thu, Sep 27, 2012 at 1:21 PM, Rantony <antony.akkara at ge.com> wrote:
>> Hi,
>>
>> Can anyone please help to get "StartDay" and "End-day of a particular month"
>> with time ?
>>
>> For eg:- Input wil be "2012-09-27"
>>
>> i need to get output as given below
>>
>> StartDt <- "2012-09-01 00:00:01"
>> EndDt <- "2012-09-30 23:59:59"
>>
>> - Thanks in advance
>
> Look at xts::lastof().
>
> Cheers,
> Michael
>
> ______________________________________________
> 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.
>
>
> ______________________________________________
> 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.





More information about the R-help mailing list