byRow

New in version 1.30.3.

语法

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]

很多函数,比如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))