Hi Tjun Kiat,
The following examples work for me. One uses the dates you have
specified, adding one weekly date to cover the range of your daily
dates, otherwise you will generate NAs. The second defines weekly
breaks for a year and then simulates daily dates throughout that year.
Remember that your weekly dates must span the range of daily dates.

SMA<-list()
# weekly dates with a date added to cover the range of daily dates
SMA$TIME_DATE<-c("1/6/2014","28/9/2014","17/6/2014","19/9/2014",
 "17/1/2015","13/1/2015","21/10/2014")
weekly_date<-as.Date(SMA$TIME_DATE,"%d/%m/%Y")
Shipment<-list()
# these are the daily dates
Shipment$DateRequire<-c("2014-06-09","2014-06-16","2014-06-16",
 "2014-06-16","2014-06-17","2014-06-23")
daily_date<-as.Date(Shipment$DateRequire,"%Y-%m-%d")
table(cut(daily_date,breaks=weekly_date,include.lowest=TRUE,
 labels=paste("Week",1:6,sep=" ")))

# here's an example with more dates over a full year
daily_date<-as.Date(paste("2000",1:12,sample(1:28,52,TRUE),sep="-"),
 "%Y-%m-%d")
weekly_date<-seq(as.Date("01/01/2000","%d/%m/%Y"),
 as.Date("31/12/2000","%d/%m/%Y"),by=7)
# no table here as it would be fairly long
cut(daily_date,breaks=weekly_date,include.lowest=TRUE,
 labels=paste("Week",1:52,sep=" "))

Jim


On Wed, Jun 8, 2016 at 12:44 PM, TJUN KIAT TEO <teotj...@hotmail.com> wrote:
>
> It does not seem to work for me. I will show you exactly my data format
>
> SMA$TIME_DATE
>
> "28/9/2014"  "17/6/2014"  "19/9/2014"  "17/1/2015"  "13/1/2015"
> "21/10/2014"
>
>
> Shipment$DateRequire
>
>  "2014-06-09" "2014-06-16" "2014-06-16" "2014-06-16" "2014-06-17"
> "2014-06-23"
>
> What I would like to do is the cut the first set of dates into the second
> set of dates
>
>
>
>
>
>
>
>> From: drjimle...@gmail.com
>> Date: Fri, 3 Jun 2016 18:59:11 +1000
>> Subject: Re: [R] Cut Dates into bins
>> To: teotj...@hotmail.com
>> CC: r-help@r-project.org
>
>>
>> Hi Tjun Kiat,
>> This seems to work:
>>
>> daily_date<-as.Date(paste("2000-01",1:28,sep="-"),"%Y-%m-%d")
>> weekly_date<-as.Date(paste(c(1,8,15,22,28),"01/2000",sep="/"),
>> "%d/%m/%Y")
>> cut(daily_date,breaks=weekly_date,include.lowest=TRUE,
>> labels=paste("Week",1:4))
>>
>> Jim
>>
>>
>> On Fri, Jun 3, 2016 at 6:00 PM, TJUN KIAT TEO <teotj...@hotmail.com>
>> wrote:
>> > I have two set of dates
>> >
>> > 2000-01-01
>> >
>> > 01/01/2000
>> >
>> > The second one occurs weekly and the first one occurs in daily. I would
>> > like to bin the first set of dates into the second set of dates. What is 
>> > the
>> > best way to do it?
>> >
>> > I tried converting both formats into numeric formats
>> >
>> >
>> > DateBase=sort(as.numeric(as.POSIXlt(unique(Shipment$DateRequire),format="%Y-%m-%D",origin="1900-01-01")))
>> >
>> >
>> > Compare=as.numeric(as.POSIXlt(SMA$TIME_DATE,format="%d/%m/%y",origin="01/01/1900"))
>> >
>> > But the numeric numbers turned out to be very different.
>> >
>> > Tjun Kiat
>> >
>> >
>> >
>> > [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > 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@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to