byRow

语法

byRow(func, X)

参数

func 是一个函数。该函数可以是向量函数(输入与输出均为等长向量),亦可为聚合函数。

X 是一个矩阵或数组向量。X 的每一行均为 func 的参数。

其他相关的 row 系列函数的参数说明和窗口计算规则请参考: 行计算系列(row 系列)

详情

对矩阵 X 的每一行应用指定函数。

例子

$ m=matrix(1 1, 2 3, 2 1);
$ m;

col1

col2

col3

1

2

2

1

3

1

$ byRow(add{10 20 30},m);

col1

col2

col3

11

22

32

11

23

31

$ byRow(mode,m);
[2,1]
$ b=array(DOUBLE[], 0, 10).append!([11.8 21.2 23.9, 83.3 90.2 78.2 86.5, 10.1 12.4 16.8])
$ byRow(add{100},b)
[111.8 121.2 123.9,183.3 190.2 178.2 86.5,110.1 112.4 116.8]
$ byRow(imax,b)
[2,1,2]

很多函数,比如imax, imin等只能处理矩阵每列数据,若要对表中某行数据进行处理,就可以使用byRow函数。假设,取表t中每行数据最大值索引,先将表转为矩阵,再使用byRow对矩阵每一行应用imax函数:

$ qty1 = 2200 1900 2100 3200 6800 5400 1300 2500 8800
$ qty2 = 2100 1800  6800 5400 1300 2400 8500 4100 3200
$ qty3 = 7800 5400 5300 2500 1800 2200 3900 3100 1200
$ qty4 = 3200 2800 6400 8300 2300 3800 2900 1600 2900
$ t = table(qty1, qty2, qty3, qty4);

$ byRow(imax, matrix(t))