我想仅在数据等于“ ---”的情况下,根据上一个和下一个已知值线性插值单个列。
数据示例:
0
---
---
---
10
---
20
22
15
---
---
---
-15
想要的输出:
0
2.5
5
7.5
10
15
20
22
15
7.5
0
-7.5
-15
我见过可以根据第一列(例如日期)进行插值的代码,如here所述。还有其他适合步长的代码,例如here,但它们对我不起作用。预先谢谢你!
答案 0 :(得分:4)
awk
来营救!
$ awk '!/---/ {n=c; while(c&&c--) print v+(n-c)*($1-v)/(n+1); v=$1; print }
/---/ {c++}' file
0
2.5
5
7.5
10
15
20
22
15
7.5
0
-7.5
-15