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))