eachPre (:P)

语法

eachPre(func, X, [pre])

[pre] <operator>:P X

参数

func 是一个二元函数。

X 可以是向量、矩阵或表。当X是向量时,pre必须是标量;当X是矩阵时,pre必须是向量;当X是表时,pre必须是字典;当pre未指定时,结果的第一个元素为NULL。

详情

将给定函数/运算符应用于X中所有相邻的数据对。

eachPre 高阶函数等同于: F(X[0], pre), F(X[1], X[0]), ..., F(X[n], X[n-1]).

内置函数 ratiosdeltas 也是通过用 eachPre 高阶函数实现。定义如下:

  • function deltas(a){return a[0] -:P a}

  • function ratios(a){return a[0] :P a}

例子

$ x=1..10;

$ eachPre(sub, x);
[,1,1,1,1,1,1,1,1,1]
// 等同于[NULL, 2-1, ..., 10-9]

$ -:P x;
[,1,1,1,1,1,1,1,1,1]
// 同上

$ eachPre(+, x);
[,3,5,7,9,11,13,15,17,19]
// 等同于 [NULL, 2+1, ..., ]

$ 0 +:P x;
[1,3,5,7,9,11,13,15,17,19]
// 等同于 [1+0, 2+1, ..., ]

$ x=1..12$3:4;
x;

col1

col2

col3

col4

1

4

7

10

2

5

8

11

3

6

9

12

$ - :P x;

col1

col2

col3

col4

3

3

3

3

3

3

3

3

3

$ eachPre(\, x, x[0]);

col1

col2

col3

col4

1

4

1.75

1.428571

1

2.5

1.6

1.375

1

2

1.5

1.333333