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