packr#
Purpose#
Deletes the rows of a matrix that contain any missing values.
Format#
- y = packr(x)#
- Parameters:
x (NxK matrix) – data
- Returns:
y (LxK matrix) – Matrix of x containing only those rows that do not have missing values in any of their elements.
Examples#
Example 1: Basic example#
// Create a 5x3 matrix with missing values
x = { 1 2 3,
4 . 6,
. 8 .,
10 11 12,
. 14 5 };
// Remove all rows which contain a missing value
x_trim = packr(x);
After the code above, x_trim will equal:
x_trim = 1 2 3
10 11 12
Example 2#
// Set the rng seed for repeatable random numbers
rndseed 7342692;
// Create a 3x3 matrix of random integers between 1 and 10
x = ceil(rndu(3, 3) * 10);
// Turn all elements with a value of 8 into missing values
x2 = miss(ceil(rndu(3, 3)*10), 8);
// Remove all rows that contain missing values
y = packr(x2);
After the code above:
6 10 3 6 10 3
x = 8 7 8 x2 = . 7 . y = 6 10 3
8 6 7 . 6 7
Example 3#
// Open a GAUSS data file for reading
open fp = mydata;
obs = 0;
sum = 0;
// Continue looping until the end of the file has been
// reached
do until eof(fp);
// Read in 100 lines of the data file and remove any rows
// with missing values
x = packr(readr(fp, 100));
// Check to see if 'packr' returned a missing value; if
// not, update 'obs' and 'sum'
if not scalmiss(x);
obs = obs + rows(x);
sum = sum + sumc(x);
endif;
endo;
mean = sum/obs;
In this example the sums of each column in a data
file are computed as well as a count of the rows
that do not contain any missing values. packr()
is
used to delete rows that contain missings and
scalmiss()
is used to skip the two sum steps if all
the rows are deleted for a particular iteration of
the read loop. Then the sums are divided by the
number of observations to obtain the means.
Remarks#
This function is useful for handling missing values by “listwise
deletion,” particularly prior to using the /
operator to compute least
squares coefficients.
If all rows of a matrix contain missing values,:func:` packr` returns a scalar
missing value. This can be tested for quickly with the scalmiss()
function.
See also
Functions impute()
, scalmiss()
, miss()
, missrv()