重定时把所有的NaN

17次(最近30天)
安德烈塞西莉亚
安德烈塞西莉亚 在2020年4月1日
嗨,您好,
我有一个气象站的数据集,其第一行是例如一个时间表
TT(1:15,:)
ANS =
15×11时间表
时间ŤURWSpeedWDIRWGustRainRateDP拉德UV
________________________________________________________________________
12/01/0019 11:00 1009.3 3.6667 58 1.6093 202.5 8.0467 0.1 0 -3.824楠楠
12/01/0019 11:05 1009.2 4.1111 59 0 0的NaN 0.08 0 -3.1779楠楠
12/01/0019 11:10 1009.2 4.3333 53 6.4374 22.5 11.265 0 0 -4.3996楠楠
12/01/0019 11:15 1009.2 4.3889 52 11.265 22.5 17.703 0 0 -4.6004楠楠
12/01/0019 11:20 1009.2 4.4444 53 11.265 22.5 17.703 0 0 -4.2964楠楠
12/01/0019 11:25 1008.9 4.7778 52 9.6561 22.5 16.093 0 0 -4.2398楠楠
12/01/0019 11:30 1008.8 4.7778 52 11.265 22.5 17.703 0 0 -4.2398楠楠
12/01/0019 11:35 1008.9 5.0556 52 9.6561 45 16.093 0 0 -3.9824楠楠
12/01/0019 11:40 1008.8 5.1667 50 12.875 22.5 17.703 0 0 -4.4005楠楠
12/01/0019 11:45 1008.8 5.3889 49 11.265 22.5 17.703 0 0 -4.4635楠楠
12/01/0019十一时48 1008.6 5.6111 51 6.4374 22.5 11.265 0 0 -3.7267楠楠
12/01/0019 11时49分1008.6 5.7778 50 11.265 45 14.484 0 0 -3.8367楠楠
12/01/0019 11:50 1008.6 5.8333 49 6.4374 45 11.265 0 0 -4.0544楠楠
12/01/0019 11点51分1008.6 5.9444 50 4.828 45 12.875 0 0 -3.6829楠楠
12/01/0019十一点52 1008.6 5.9444 49 9.6561 45 12.875 0 0 -3.9521楠楠
>>
你可以看到,日期时间为每5分钟,但有时也有跳跃(例如,从11:30至11:40),或多个连续的数据(见最后行)。我需要做的就是填补与南线的空白,并把所有的数据集,每五分钟。ID EST,我需要建立与所有NaN 11:30和11:40之间的新行11:35的变量,并聚集了太多的连续数据,例如与平均值。
我知道我能获得这个使用重新定时功能,所以我给了
次= [T 0:分钟(5):TF];
TT =重新定时(TT,时报'fillwithmissing');
其中T 0和tf是日期时间extremals。
我是从这个是获得
>> TT(1:15,:)
ANS =
15×11时间表
时间ŤURWSpeedWDIRWGustRainRateDP拉德UV
_____________________________________________________________
19年12月1日11:00楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:05楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:10楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:15楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:20楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:25楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:30楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:35楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:40楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:45楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:50楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日11:55楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日12:00楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日12:05楠楠楠楠楠楠楠楠楠楠的NaN
19年12月1日12:10楠楠楠楠楠楠楠楠楠楠的NaN
>>
为什么会有所有NaN现在?
你能帮助我吗?
谢谢,
安德里亚

1条评论

穆罕默德·萨米
穆罕默德·萨米 在2020年4月1日
或许有你的时间值一些二值。这可能导致其无法在指定的每五分钟找到值。可能需要使用dateshift功能圆的时候,
尝试specifiying时间步长,而不是一个时间阵列
DT =分钟(5);
TT2 =重新定时(TT1,'定期''fillwithmissing'“时间步”,DT);

登录发表评论。

答案(1)

彼得·帕金斯
彼得·帕金斯 14 2020年4月
由于穆罕默德说,你必须有时间是不完全在5分钟标记处。这是一个简短的显示格式的危险。
在默认情况下缺失值重新定时填充任何地方必须填写值。在你的情况,这是 到处 。你既可以清理原始行时间,或者你可以使用“最近”的方法来移值从不规则的时间到正规的5分钟时间。当然,如果你用“最近”并添加缺少的行只需一个步骤,您将获得非NaN值填充在其中,缺少的一排排的时间。我认为这是不是你想要的。,你也需要聚合(什么意思?最大?第一?)。三件事。
因此,在步骤做到这一点。首先清理多余秒。
tt.Time = dateshift(tt.Time,'开始''分钟'“最近”);
然后聚集的行不是5分钟的增量。由于平均返回NaN空,你还可以添加缺少的行。
TT =重新定时(TT,'定期''意思'“时间步”,分钟(5))
这应该这样做。

0评论

登录发表评论。