miss, missrv#
Purpose#
miss()
creates a scalar missing value or converts specified elements in a matrix to GAUSS’s missing
value code. missrv()
is the reverse of this, and converts missing values into specified values.
Format#
Examples#
Create a scalar missing value#
// Create a scalar missing value
m = miss();
print m;
After the above code, m
will be a scalar missing value and the code will print the following:
.
Replace missing values#
// Create a 4x3 matrix with missing values
x = { 1 . 3,
. 5 .,
7 8 .,
. 10 11 };
// Replace all missing values with 0.
x_2 = missrv(x, 0);
// Create a 1x3 row vector.
replace = { -1 -2 -3 };
// Replace missing values with the element
// in the corresponding column of 'replace'
x_3 = missrv(x, replace);
After the code above:
1 0 3
x_2 = 0 5 0
7 8 0
0 10 11
1 -2 3
x_3 = -1 5 -3
7 8 -3
-1 10 11
Replace specific numbers with missing values#
// Create a 4x3 matrix
x = { 1 2 3,
4 5 6,
7 8 4,
4 10 11 };
// Replace all instances of 4 with a missing value.
x_2 = miss(x, 4);
// Create a 1x3 row vector.
replace = { 4 5 6 };
// Replace all instances of 4 in the first column,
// 5 in the second column and 6 in the third with a missing.
x_3 = miss(x, replace);
After the code above:
1 2 3
x_2 = . 5 6
7 8 .
. 10 11
1 2 3
x_3 = . . .
7 8 4
. 10 11
Example 3#
// Create a 3x3 matrix with each element equal to 1
x = ones(3, 3);
// Assign the diagonal of 'x' to be equal to pi
x = diagrv(x, pi);
print "x = " x;
// Change all 1's in 'x' into missing values and assign to
// xmiss
xmiss = miss(x, 1);
print "xmiss = " xmiss;
// Change all missings in 'xmiss' into 2*pi and assign to x2
x2 = missrv(xmiss, 2*pi);
print "x2 = " x2;
The code above, will return:
x =
3.1415927 1.0000000 1.0000000
1.0000000 3.1415927 1.0000000
1.0000000 1.0000000 3.1415927
xmiss =
3.1415927 . .
. 3.1415927 .
. . 3.1415927
x2 =
3.1415927 6.2831853 6.2831853
6.2831853 3.1415927 6.2831853
6.2831853 6.2831853 3.1415927
Remarks#
For miss()
, elements in x that are equal to the corresponding elements in
v will be replaced with the GAUSS missing value code.
For missrv()
, elements in x that are equal to the GAUSS missing value code
will be replaced with the corresponding element of v.
For complex matrices, the missing value code is defined as a missing
value entry in the real part of the matrix. For complex x, then, miss()
replaces elements with a “. + 0i” value, and missrv()
examines only the
real part of x for missing values. If, for example, an element of \(x = 1 + .i\),
missrv()
will not replace it.
These functions act like element-by-element operators. If v is a scalar, for instance -1, then all -1’s in x are converted to missing. If v is a row (column) vector with the same number of columns (rows) as x, then each column (row) in x is transformed to missings according to the corresponding element in v. If v is a matrix of the same size as x, then the transformation is done corresponding element by corresponding element.
Missing values are given special treatment in the following functions
and operators: \(b/A\) (matrix division when a is not square and neither a
nor b is scalar), counts()
, scalmiss()
, maxc()
, maxindc()
,
minc()
, minindc()
, miss()
, missex()
, missrv()
,
moment()
, packr()
, scalmiss()
, sortc()
.
As long as you know a matrix contains no missings to begin with, miss()
and missrv()
can be used to convert one set of numbers into another. For
example:
y = missrv(miss(x, 0), 1);
will convert 0’s to 1’s.
To convert a range of values, such as:
into missing values, use the missex()
function.