ffill
语法
ffill(obj, [limit])
参数
obj 可以是向量、矩阵或表。
limit 是正整数,表示需要填充的NULL值的数量。
详情
如果obj是一个向量,使用NULL值前的非空元素来填充NULL值。
如果obj是一个矩阵或表,对于表中的每一列,使用NULL值前的非空元素来填充NULL值。
该函数会生成新的对象,不会改变输入的对象。函数 ffill! 会改变输入的对象。
例子
$ x=1 2 3 NULL NULL NULL 4 5 6
$ x.ffill();
[1,2,3,3,3,3,4,5,6]
$ x.ffill(1);
[1,2,3,3,,,4,5,6]
$ x.ffill!(2);
$ x;
[1,2,3,3,3,,4,5,6]
$ date=[2012.06.12,2012.06.12,2012.06.13,2012.06.14,2012.06.15]
$ sym=["IBM","MSFT","IBM","MSFT","MSFT"]
$ price=[40.56,26.56,,,50.76]
$ qty=[2200,4500,,5600,]
$ timestamp=[09:34:07,09:35:26,09:36:42,09:36:51,09:36:59]
$ t=table(date,timestamp,sym,price,qty);
$ t;
date |
timestamp |
sym |
price |
qty |
---|---|---|---|---|
2012.06.12 |
09:34:07 |
IBM |
40.56 |
2200 |
2012.06.12 |
09:35:26 |
MSFT |
26.56 |
4500 |
2012.06.13 |
09:36:42 |
IBM |
||
2012.06.14 |
09:36:51 |
MSFT |
5600 |
|
2012.06.15 |
09:36:59 |
MSFT |
50.76 |
$ t.ffill();
date |
timestamp |
sym |
price |
qty |
---|---|---|---|---|
2012.06.12 |
09:34:07 |
IBM |
40.56 |
2200 |
2012.06.12 |
09:35:26 |
MSFT |
26.56 |
4500 |
2012.06.13 |
09:36:42 |
IBM |
26.56 |
4500 |
2012.06.14 |
09:36:51 |
MSFT |
26.56 |
5600 |
2012.06.15 |
09:36:59 |
MSFT |
50.76 |
5600 |
select date, timestamp, sym, price.ffill() as price, qty.ffill() as qty from t context by sym;
date |
timestamp |
sym |
price |
qty |
---|---|---|---|---|
2012.06.12 |
09:34:07 |
IBM |
40.56 |
2200 |
2012.06.13 |
09:36:42 |
IBM |
40.56 |
2200 |
2012.06.12 |
09:35:26 |
MSFT |
26.56 |
4500 |
2012.06.14 |
09:36:51 |
MSFT |
26.56 |
5600 |
2012.06.15 |
09:36:59 |
MSFT |
50.76 |
5600 |