MATLAB:将一个时间表集成到另一个时间表中
MATLAB: Integrate one timetable into another
我想扩展现有的时间表。原来的时间表只包括交易日,而我想扩大它以反映所有工作日(无论是否工作日)。
考虑原时间表tt
。我想使用 RowTimes
向量 datesWeekdays
扩展它。展开的行应包含 NaN。
玩的时候,我想知道是否可以先创建一个包含所有日期的新时间表并将数据设置为 NaN 然后 "integrate" 原始时间表 tt
进入新时间表ttWeekdays
.
这是一个玩具示例:
data = rand(3,2);
dates = datetime({'2018-04-30', '2018-05-02', '2018-05-03'}, 'InputFormat','yyyy-MM-dd');
tt = array2timetable(data, 'RowTimes', dates, 'VariableNames', {'high', 'low'})
datesWeekdays = datetime({'2018-04-30', '2018-05-01', '2018-05-02', '2018-05-03', '2018-05-04'}, 'InputFormat','yyyy-MM-dd');
dataWeekdays = nan(5,2);
ttWeekdays = array2timetable(dataWeekdays, 'RowTimes', datesWeekdays, 'VariableNames', {'high', 'low'})
您可以为此使用 retime
。像这样:
% Set up a date vector
newDates = datetime('2018-04-30'):datetime('2018-05-10');
newDates(isweekend(newDates)) = [];
% Use RETIME in default mode to expand input table
retime(tt, newDates)
得到
9×2 timetable
Time high low
___________ _______ _______
30-Apr-2018 0.81472 0.91338
01-May-2018 NaN NaN
02-May-2018 0.90579 0.63236
03-May-2018 0.12699 0.09754
04-May-2018 NaN NaN
07-May-2018 NaN NaN
08-May-2018 NaN NaN
09-May-2018 NaN NaN
10-May-2018 NaN NaN
请注意,retime
支持多种填充缺失数据的方法 - 这里我们使用默认值 'fillwithmissing'
。
我想扩展现有的时间表。原来的时间表只包括交易日,而我想扩大它以反映所有工作日(无论是否工作日)。
考虑原时间表tt
。我想使用 RowTimes
向量 datesWeekdays
扩展它。展开的行应包含 NaN。
玩的时候,我想知道是否可以先创建一个包含所有日期的新时间表并将数据设置为 NaN 然后 "integrate" 原始时间表 tt
进入新时间表ttWeekdays
.
这是一个玩具示例:
data = rand(3,2);
dates = datetime({'2018-04-30', '2018-05-02', '2018-05-03'}, 'InputFormat','yyyy-MM-dd');
tt = array2timetable(data, 'RowTimes', dates, 'VariableNames', {'high', 'low'})
datesWeekdays = datetime({'2018-04-30', '2018-05-01', '2018-05-02', '2018-05-03', '2018-05-04'}, 'InputFormat','yyyy-MM-dd');
dataWeekdays = nan(5,2);
ttWeekdays = array2timetable(dataWeekdays, 'RowTimes', datesWeekdays, 'VariableNames', {'high', 'low'})
您可以为此使用 retime
。像这样:
% Set up a date vector
newDates = datetime('2018-04-30'):datetime('2018-05-10');
newDates(isweekend(newDates)) = [];
% Use RETIME in default mode to expand input table
retime(tt, newDates)
得到
9×2 timetable
Time high low
___________ _______ _______
30-Apr-2018 0.81472 0.91338
01-May-2018 NaN NaN
02-May-2018 0.90579 0.63236
03-May-2018 0.12699 0.09754
04-May-2018 NaN NaN
07-May-2018 NaN NaN
08-May-2018 NaN NaN
09-May-2018 NaN NaN
10-May-2018 NaN NaN
请注意,retime
支持多种填充缺失数据的方法 - 这里我们使用默认值 'fillwithmissing'
。