rowAt
Syntax
rowAt(X, [Y])
Please see Row-Based Functions for the parameters and calculation rules.
Arguments
X is a matrix or an array vector.
Y is an optional parameter. It can be a vector of integers, a Boolean matrix, a Boolean array vector, or an array vector of integers.
Details
If Y is not specified, X must be a Boolean matrix or Boolean array vector. The
rowAt
function retrieves the row indices for each “true” element in X by row and returns an array vector of integers. The returned array vector has the same number of rows as X. If X contains a row with only Null or “false” elements,rowAt
returns null for that row.If Y is a vector, then each element in Y indicates the column index for X at each row. The
rowAt
function retrieves the corresponding element at each row in X and returns a vector of the same size as Y. If no element is found at the position specified by Y, a NULL value is returned.If Y is a Boolean matrix or Boolean array vector, the
rowAt
function retrieves the elements in X that correspond to the “true” values in Y and returns an array vector. The returned array vector has the same number of rows as Y. For any row in Y that contains only “false” elements,rowAt
returns a NULL value in the output array vector for that row.If Y is an array vector of integers, then each row in Y indicates the column index for X at each row. The
rowAt
function retrieves the corresponding element(s) at each row in X and returns an array vector of the same dimension as Y. If no element is found at the position specified by Y, a NULL value is returned.
Examples
$ m = matrix(3.1 4.5 2.2, 4.2 4.3 5.1, 6.2 7.1 2.2, 1.8 6.1 5.3, 7.1 8.4 3.5)
$ index = 4 0 2
$ rowAt(m, index)
[7.1,4.5,2.2]
$ index = array(INT[], 0, 10).append!([0 1, 2 4, 3 4 5])
$ rowAt(m, index)
[[3.1,4.2],[7.1,8.4],[5.3,3.5,]]
$ x = array(DOUBLE[], 0, 10).append!([3.3 3.6 3.8, 3.7 3.4 3.5, 3.4 3.4 3.5])
$ index = array(INT[], 0, 10).append!([0 1, 2, 0 2])
$ rowAt(x, index)
[[3.3,3.6],[3.5],[3.4,3.5]]
price1 |
price2 |
---|---|
33.8 |
33.3 |
34.3 |
32.8 |
35.3 |
31.2 |
34.1 |
30.2 |
33.8 |
33.1 |
$ m = matrix(true false false, false true false, true true false)
$ R=rowAt(m)
$ R
[[0,2],[1,2],]
$ typestr(R) //FAST INT[] VECTOR
$ m = matrix(3.1 4.5 2.2, 2.2 4.3 5.1, 1.2 7.1 2.2, 1.8 6.1 5.3, 1 4 3)
$ rowAt(m, m>4)
[,[4.5,4.3,7.1,6.1],[5.1,5.3]]
$ x = array(DOUBLE[], 0, 10).append!([3.3 3.6 3.8, 3.7 3.4 3.5, 3.4 3.4 3.5])
$ rowAt(x, x>3.5)
[[3.6,3.8],[3.7],]
Related functions: at