matlab - Matlab:过滤时间表以平衡面板数据
问题描述
我有一个时间表,我想保留那些在我的变量“Id”中的每个值之间重合的日子。在我放在这里的示例中,我从我的时间表 T 开始,其中有三个不同的“Id”。我的目标是最终得到一个时间表 T_1,其中只保留每个“Id”之间日期重合的观察结果。
T= timetable(datetime({'13/04/2018';'25/04/2018';'28/04/2018';'13/04/2018';'25/04/2018';'13/04/2018'}), [1;1;1;2;2;3],[30;29;45;21;24;8] );
T.Properties.VariableNames = {'Id' 'Price'}
%I want to get:
T_1=timetable(datetime({'13/04/2018';'13/04/2018';'13/04/2018'}), [1;2;3],[30;21;8] );
如果您能帮助我,我将不胜感激!
解决方案
您可以使用
T_1 = T('13/04/2018',:);
我建议您阅读有关文档和timerange
一般时间表。
如果要将时间表拆分为多个较小的时间表,可以按日期选择它们,并将它们存储在一个元胞数组中:
T_unique = unique(T.Time); % get all unique dates
T_all = cell(size(T_unique)); % init an empty cell array
for k = 1:numel(T_unique)
T_all{k} = T(T_unique(k),:); % and put the timetable for one date in the cell array
end
推荐阅读
- c - 在从标准输入读取的while循环中捕获EOF字符
- python-3.x - 有没有办法让 Splash 等到站点上的所有 java 脚本加载?
- c++ - 修改内存区域 - 返回 0xCC VC++
- c - 执行 make 时出错:mingw32-make: *** No rule to make target
- java - “请求的资源不支持 http 方法 'GET'” - 但我没有使用 C# 或 asp.net,我是发出请求的人
- r - 编写循环以一次在多个列表上执行
- reactjs - React 应用程序未登录到控制台或终端窗口
- sql-server - 如何进行查询以检查字段的值
- if-statement - XSLT/Xpath:如何找出某个东西是或不是关键(如果)?
- gitignore - 忽略 gitignore 规则