Fill missing values in time series
fillts
is not recommended. Use timetable
instead. For more information, see Convert Financial Time Series Objects fints to Timetables.
newfts = fillts(oldfts,fill_method
) newfts = fillts(oldfts,fill_method
,newdates) newfts = fillts(oldfts,fill_method
,newdates,{'T1','T2',...}) newfts = fillts(oldfts,fill_method
,newdates,'SPAN',{'TS','TE'},delta) newfts = fillts(... sortmode)
| Financial time series object. |
| (Optional) Replaces missing values ( Valid fill methods (interpolation methods) are:
(See To fill with a constant, enter that constant. A zero-order hold
( |
| (Optional) Column vector of serial dates, a date character
vector, or a column cell array of character vector dates. If
|
| First time, second time, start time, end time |
| Time interval in minutes to span between the start time and end time |
| (Optional) Default = |
newfts = fillts(oldfts,
replaces missing values (represented by fill_method
)NaN
) in the financial time
series object oldfts
with real values, using either a constant or the
interpolation process indicated by fill_method
.
newfts =
fillts(oldfts,
replaces
all the missing values on the specified dates fill_method
,newdates)newdates
added to the
financial time series oldfts
with new values. The values can be a
single constant or values obtained through the interpolation process designated by
fill_method
. If any of the dates in newdates
exists in oldfts
, the existing one has precedence.
newfts = fillts(oldfts,
additionally allows the designation of specific
times of day for addition or replacement of data.fill_method
,
newdates,{'T1','T2',...})
newfts =
fillts(oldfts,
is similar to the previous format except that you designate only a start time and an end
time. You follow these times with a spanning time interval,
fill_method
,newdates,'SPAN',{'TS','TE'},delta)delta
.
If you specify only one date for newdates
, specifying a start and
end time generates only times for that specific date.
newfts = fillts(... sortmode)
additionally denotes whether you want
the order of the dates in the output object to stay the same as in the input object or
to be sorted chronologically.
sortmode = 0
(unsorted) appends any new dates to the end. The
interpolation and zero-order processes that calculate the values for the new dates work
on a sorted object. Upon completion, the existing dates are reordered as they were
originally, and the new dates are appended to the end.
sortmode = 1
sorts the output. After interpolation, no reordering
of the date sequence occurs.
Example 1. Create a financial time series object with missing data in the fourth and fifth rows.
dates = ['01-Jan-2001';'01-Jan-2001'; '02-Jan-2001';... '02-Jan-2001'; '03-Jan-2001';'03-Jan-2001']; times = ['11:00';'12:00';'11:00';'12:00';'11:00';'12:00']; dates_times = cellstr([dates, repmat(' ',size(dates,1),1),... times]); OpenFts = fints(dates_times,[(1:3)'; nan; nan; 6],{'Data1'},1,... 'Open Financial Time Series')
OpenFts
looks like this:
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints (line 165) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) OpenFts = desc: Open Financial Time Series freq: Daily (1) 'dates: (6)' 'times: (6)' 'Data1: (6)' '01-Jan-2001' '11:00' [ 1] ' " ' '12:00' [ 2] '02-Jan-2001' '11:00' [ 3] ' " ' '12:00' [ NaN] '03-Jan-2001' '11:00' [ NaN] ' " ' '12:00' [ 6]
Example 2. Fill the missing data in
OpenFts
using cubic interpolation.
FilledFts = fillts(OpenFts,'cubic')
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) FilledFts = desc: Filled Open Financial Time Series freq: Unknown (0) 'dates: (6)' 'times: (6)' 'Data1: (6)' '01-Jan-2001' '11:00' [ 1] ' " ' '12:00' [ 2] '02-Jan-2001' '11:00' [ 3] ' " ' '12:00' [ 3.0663] '03-Jan-2001' '11:00' [ 5.8411] ' " ' '12:00' [ 6.0000]
Example 3. Fill the missing data in
OpenFts
with a constant value.
FilledFts = fillts(OpenFts,0.3)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) FilledFts = desc: Filled Open Financial Time Series freq: Unknown (0) 'dates: (6)' 'times: (6)' 'Data1: (6)' '01-Jan-2001' '11:00' [ 1] ' " ' '12:00' [ 2] '02-Jan-2001' '11:00' [ 3] ' " ' '12:00' [ 0.3000] '03-Jan-2001' '11:00' [ 0.3000] ' " ' '12:00' [ 6]
Example 4. You can use fillts
to
identify a specific time on a specific day for the replacement of missing data. This
example shows how to replace missing data at 12:00 on January 2 and 11:00 on January
3.
FilltimeFts = fillts(OpenFts,'c',... {'02-Jan-2001';'03-Jan-2001'}, {'12:00';'11:00'},0)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) FilltimeFts = desc: Filled Open Financial Time Series freq: Unknown (0) 'dates: (6)' 'times: (6)' 'Data1: (6)' '01-Jan-2001' '11:00' [ 1] ' " ' '12:00' [ 2] '02-Jan-2001' '11:00' [ 3] ' " ' '12:00' [ 3.0663] '03-Jan-2001' '11:00' [ 5.8411] ' " ' '12:00' [ 6.0000]
Example 5. Use a spanning time interval to add an
additional day to OpenFts
.
SpanFts = fillts(OpenFts,'c','04-Jan-2001','span',... {'11:00';'12:00'},60,0)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/fillts (line 213) Warning: FINTS will be removed in a future release. Use TIMETABLE instead. > In fints/display (line 66) SpanFts = desc: Filled Open Financial Time Series freq: Unknown (0) 'dates: (8)' 'times: (8)' 'Data1: (8)' '01-Jan-2001' '11:00' [ 1] ' " ' '12:00' [ 2] '02-Jan-2001' '11:00' [ 3] ' " ' '12:00' [ 3.0663] '03-Jan-2001' '11:00' [ 5.8411] ' " ' '12:00' [ 6.0000] '04-Jan-2001' '11:00' [ 9.8404] ' " ' '12:00' [ 9.9994]