Description
===========
Objects to manipulate sequential and seasonal time series.
Sequential time series based on time instants and time durations are handled.
Both can be regularly or unevenly spaced (overlapping durations are allowed).

Only POSIX* format are used for dates and times.

The following classes are provided : 'POSIXcti', 'POSIXctp',
'TimeIntervalDataFrame', 'TimeInstantDataFrame', 'SubtimeDataFrame' ;
methods to switch from a class to another and to modify the time support of
series (hourly time series to daily time series for instance) are also defined.
Tools provided can be used for instance to handle environmental monitoring
data (not always produced on a regular time base).


News

-------------------------------------------------------------------------------
* v1.12.3
argument 'sort' added to constructor TimeIntervalDataFrame, TimeInstantDataFrame.

-------------------------------------------------------------------------------
* v1.12.2
argument 'sort' added to merge.{TimeIntervalDataFrame, TimeInstantDataFrame,
SubtimeDataFrame}

-------------------------------------------------------------------------------
* v1.12.1
argument 'by' of merge.TimeInstantDataFrame had no default value. Now it has.

-------------------------------------------------------------------------------
* v1.12.0
Bug fixed : in split(TimeIntervalDataFrame, TimeIntervalDataFrame),
the simplified algorithm could sometimes be selected whereas it shouldn't.

-------------------------------------------------------------------------------
* v1.11.0
New features added :
'Ops' of TimeIn*DataFrame against numeric (tidf*2, 3^tidf, tidf^3, etc.)
'lapply' over TimeIn*DataFrame now return a data.frame if the result
can't be coerced to a TimeIn*DataFrame

-------------------------------------------------------------------------------
* v1.10
Declaration of C native routine as newly specified (R_registerRoutines as so)

-------------------------------------------------------------------------------
* v1.9.0
'default' argument added to 'tapply' functions. This argument is not used but
needed for compatibility reason with R-base packages.

-------------------------------------------------------------------------------
* v1.8.0
Date selection on Time*DataFrame ca be used for value replacement
Recursive replacement enabled for Time*DataFrame

-------------------------------------------------------------------------------
* v1.7.5
Code adapted to deprecation of implicit list embedding of S4 objects.

-------------------------------------------------------------------------------
* v1.7.4
Conversion from/to empty TimeIntervalDataFrame to/from TimeInstantDataFrame
added.

-------------------------------------------------------------------------------
* v1.7.3
Bug fixed : in RegularTimeIntervalDataFrame some extra rows could be added where
not required.

-------------------------------------------------------------------------------
* v1.7.1
- Date selection on TmeInstantDataFrame didn't work. Bug fixed.

-------------------------------------------------------------------------------
* v1.7.0
- Data extraction on Time*DataFrame now can be done directly by using date
(POSIXct or suitable character strings) :
data['yyyy-mm-dd' , 'yyyy-mm-dd']
data['yyyy-mm-dd' , ]
data[ , 'yyyy-mm-dd']
data['yyyy-mm-dd tz' , ]
data['yyyy-mm-dd hh:mm:ss' , ]
data['yyyy-mm-dd hh:mm:ss tz' , ]
# etc.

-------------------------------------------------------------------------------
* v1.6.5
- Fit Title and Description to R rules.

-------------------------------------------------------------------------------
* v1.6.4
- memory usage improved in replace functions for Time*DataFrame ('[<-', '$<-',
etc.).

-------------------------------------------------------------------------------
* v1.6.3
- previous bug fixing wasn't effective. Now "match('POSIXctp', 'POSIXctp')"
should be ok.
- bug fixed in "'POSIXctp' == 'POSIXctp'" (could have unexpected results when
differents units and differents length)

-------------------------------------------------------------------------------
* v1.6.2
- bug fixed in match('POSIXctp', 'POSIXctp')

-------------------------------------------------------------------------------
* v1.6.1
-bug fixed in RegularTimeIntervalDataFrame

-------------------------------------------------------------------------------
* v1.6.0
- doc deeply completed and reorganised
- handling of NA on POSIXctp improved
- "POSIXct - POSIXctp" redefined
- "POSIXctp + POSIXctp" rewrited
- "POSIXctp - POSIXctp" defined
- tickets n° 1, 3, 4, 7 closed
- Improve speed calculcation of split,TimeIntervalDF,TimeIntervalDF for specific cases
- duplicated.POSIXst defined
- bug fixed in merge.SubtimeDataFrame

-------------------------------------------------------------------------------
* v1.5.5
- definition of duplicated.POSIXst
- ajout des fonctions 'unit' et 'of' pour les subtimedataframe (merge ne marche pas sans ça)
- rewritting of Ops.POSIXctp
- doc improvment
- 'POSIXctp*numeric' wes not implemented but 'numeric*POSIXctp' was ... now both are
- POSIXctp contructor more flexible
- adding and subtracting 'week' to POSIXct is enabled

-------------------------------------------------------------------------------
* v1.5.2
- few enhancements for splot methods.
- split('ANY', 'POSIXctp') method defined
- split('ANY', 'POSIXcti') method defined
- split documentation improved (both sources and docmentations)
- format manpage added
- timezone  manpage added
- time properties man pages have been re-arranged (and developped)
- roxygen documentations in sources code for 'format', 'timezone' and time
properties removed.
- minor bugs fixed.

-------------------------------------------------------------------------------
* v1.5.1

tapply optimisation.
Improvement of tapply documentation (Rd file and internal mecanisms).

-------------------------------------------------------------------------------
* v1.5.0

'barplot' have been defined for SubtimeDataFrame, TimeIntervalDataFrame and
TimeInstantDataFrame.

-------------------------------------------------------------------------------
* v1.4.0

The algorithm 'changeSupport' methods has been dispatched into 'split' and
'tapply' methods. Those two types of methods are more user friendly to use since
they correspond to function available in the base package.

For backward compatibility, 'changeSupport' are still defined but now are simply
wrapper to 'tapply' methods. Be aware that default values of arguments are not
necessarily equivalent between 'changeSupport' and 'tapply'.

See man pages to list all methods defined :
help('split', 'timetools')
help('tapply', 'timetools')
help('changeSupport', 'timetools')

-------------------------------------------------------------------------------
* v1.2.1

* a split method for signature(ANY,POSIXst) has been added (actually 
it is a shortcut for "split(x, as.numeric(f))" where f is a POSIXst)
* definition of split methods have been gathered in a unique file
* definition of changeSupport methods have been gathered in a unique file

-------------------------------------------------------------------------------
* V1.2

* 'subtime' class has been replaced by 'POSIXst' class.
* use 'POSIXst' methods to define instance of this class.
* SubtimeDataFrame now rely on 'POSIXst' objects.
* functions 'year', 'month', 'minute', 'second', etc. are now wrappers for the 
'POSIXst' constructor.
* new methods have been added for 'POSIXctp' and 'POSIXcti' objects (tail, head,
summary, split, match, %in%, unique)
* 'natural' mathematical operations between POSIXst (subtimes), POSIXctp (time
periods) and POSIXcti (time intervals) are available.

-------------------------------------------------------------------------------
* v1.1.6 2012-10-30 :
Modification in plotting functions behaviour with the 'pch' argument. Now the
latter can be a data.frame

-------------------------------------------------------------------------------
* v1.1-5 2012-10-05 :

BUG FIX : when timezone property had length > 1, some unwanted errors occur while
manipulating TimeInstantDataFrame.

-------------------------------------------------------------------------------
* v1.1-4 2012-09-27 :

BUG FIX timezone problem with 'start' and 'end' functions for TimeIntervalDataFrame
and with 'when' function for TimeInstantDataFrame.

-------------------------------------------------------------------------------
* V1.1-3 :

When 'changeSupport' or 'RegularTime*DataFrame' were used, an unwanted line could
appear at the end of the Time*DataFrame when the resulting unit was 'year' or
'month'. This behaviour is now fixed and no more unwanted line should appear.

==========
* V1.1-2 :
RegularTimeInstantDataFrame and RegularTimeIntervalDataFrame :
the 'to' argument is no more necessary if 'from', 'by' and 'data' are given.

Bug fix in plot method on the returned parameters

=====================
* 09/03/2012 V1.1-1 :

For 'subtime' functions (and associated), a 'first.day' argument is added. It indicated the first day of week in case of 'wday' subtime.

A 'lapply' function is added for TimeIntervalDataFrame, TimeInstantDataFrame and SubtimeDataFrame.

Plot functions for TimeIntervalDataFrame, TimeInstantDataFrame and SubtimeDataFrame return (invisibly) params used for the plot.

==============
* 07/02/2012 :

The package is now on CRAN. Could take a while to be on all mirrors but already available on some (on French servers it's ok).

To install or update only use :
- install.packages ('timetools')
- update.packages ('timetools')
- or keep downloading it from sourceforge.

