firstNot
Syntax
firstNot(X, [k])
Arguments
X is a vector/matrix.
k is a scalar. It is an optional argument.
Details
If X is a vector:
If k is not specified: return the first element of X that is not NULL.
If k is specified: return the first element of X that is neither k nor NULL.
If X is a matrix, conduct the aforementioned calculation within each column of X. The result is a vector.
Examples
$ firstNot(0 0 0 6 1, 0);
6
$ firstNot(NULL 0 3 2 1, 0);
3
$ firstNot(NULL 0 1 6);
0
$ t=table(1 1 1 1 1 2 2 2 2 2 as id, 0 0 0 2 1 NULL NULL 0 0 3 as x);
$ t;
id |
x |
---|---|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
2 |
1 |
1 |
2 |
|
2 |
|
2 |
0 |
2 |
0 |
2 |
3 |
$ select firstNot(x, 0) from t group by id;
id |
firstNot_x |
---|---|
1 |
2 |
2 |
3 |
$ m=matrix(0 NULL 1 2 3, NULL 2 NULL 0 3);
$ m;
#0 |
#1 |
---|---|
0 |
2 |
1 |
|
2 |
0 |
3 |
3 |
$ firstNot(m, 0);
[1,2]