创建一个时间表,其中包含 3 个团队的进度状态。
timeStamp = days([1 1 1 2 2 2 3 3 3]');
teamNumber = [1 2 3 1 2 3 1 2 3]';
percentComplete = [14.2 28.1 11.5 NaN NaN 19.3 46.1 51.2 30.3]';
T = timetable(timeStamp,teamNumber,percentComplete)
T=9×2 timetable
timeStamp teamNumber percentComplete
_________ __________ _______________
1 day 1 14.2
1 day 2 28.1
1 day 3 11.5
2 days 1 NaN
2 days 2 NaN
2 days 3 19.3
3 days 1 46.1
3 days 2 51.2
3 days 3 30.3
使用线性插值填充每个组的缺失状态百分比 (NaN)。
G = grouptransform(T,'teamNumber','linearfill','percentComplete')
G=9×2 timetable
timeStamp teamNumber percentComplete
_________ __________ _______________
1 day 1 14.2
1 day 2 28.1
1 day 3 11.5
2 days 1 30.15
2 days 2 39.65
2 days 3 19.3
3 days 1 46.1
3 days 2 51.2
3 days 3 30.3
要将填充的数据追加到原始表而不是替换 percentComplete 变量,请使用 'ReplaceValues' 参数。
Gappend = grouptransform(T,'teamNumber','linearfill','percentComplete','ReplaceValues',false)
Gappend=9×3 timetable
timeStamp teamNumber percentComplete linearfill_percentComplete
_________ __________ _______________ __________________________
1 day 1 14.2 14.2
1 day 2 28.1 28.1
1 day 3 11.5 11.5
2 days 1 NaN 30.15
2 days 2 NaN 39.65
2 days 3 19.3 19.3
3 days 1 46.1 46.1
3 days 2 51.2 51.2
3 days 3 30.3 30.3