dstat

Purpose

Computes descriptive statistics.

Note

This function is deprecated, use dstatmt() instead.

Format

{ vnam, mean, var, std, min, max, valid, mis } = dstat(dataset, vars)
Parameters:
  • dataset (string) – name of dataset. If dataset is null or 0, vars will be assumed to be a matrix containing the data.

  • vars (string or string array) –

    the variables.

    If dataset contains the name of a dataset, vars will be interpreted as either:

    • A Kx1 character vector containing the names of variables.

    • A Kx1 numeric vector containing indices of variables.

    • A formula string. e.g. "PAY + WT" or ". - sex".

    These can be any size subset of the variables in the dataset and can be in any order. If a scalar 0 is passed, all columns of the dataset will be used.

    If dataset is null or 0, vars will be interpreted as a NxK matrix, the data on which to compute the descriptive statistics.

Returns:
  • vnam (Kx1 character vector) – the names of the variables used in the statistics.

  • mean (Kx1 vector) – means.

  • var (Kx1 vector) – variance.

  • std (Kx1 vector) – standard deviation.

  • min (Kx1 vector) – minima.

  • max (Kx1 vector) – maxima.

  • valid (Kx1 vector) – the number of valid cases.

  • mis (Kx1 vector) – the number of missing cases.

Global Input

__altnam

matrix, default 0.

This can be a Kx1 character vector of alternate variable names for the output.

__maxbytes

scalar, the maximum number of bytes to be read per iteration of the read loop. Default = 1e9.

__maxvec

scalar, the largest number of elements allowed in any one matrix. Default = 20000.

__miss

scalar, default 0.

0

there are no missing values (fastest).

1

listwise deletion, drop a row if any missings occur in it.

2

pairwise deletion.

__row

scalar, the number of rows to read per iteration of the read loop.

if 0, (default) the number of rows will be calculated using __maxbytes and __maxvec.

__output

scalar, controls output, default 1.

1

print output table.

0

do not print output.

Examples

Example 1

// Calculate statistics on all variables in dataset
file = getGAUSShome() $+ "examples/freqdata.dat";

// Calculate statistics on all variables in dataset: AGE, PAY, sex and WT
vars = 0;
{ vnam, mean, var, std, min, max, valid, mis } = dstat(file, vars);

After the above code,

-------------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum     Valid Missing
-------------------------------------------------------------------------------
AGE           -----     -----       -----    1.0000   10.0000       400    0
PAY          1.9675    0.8019      0.6431    1.0000    3.0000       400    0
sex           -----     -----       -----     -----     -----       400    0
WT           1.4699    0.3007      0.0904    1.0000    1.9900       400    0

Example 2

file = getGAUSShome() $+ "examples/freqdata.dat";

// Calculate statistics on just AGE and PAY
vars = "AGE" $| "PAY";
{ vnam, mean, var, std, min, max, valid, mis } = dstat(file, vars);

After the above code,

-------------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum     Valid Missing
-------------------------------------------------------------------------------
AGE           -----     -----       -----    1.0000   10.0000       400    0
PAY          1.9675    0.8019      0.6431    1.0000    3.0000       400    0

Example 3

file = getGAUSShome() $+ "examples/freqdata.dat";

// Calculate statistics on just AGE and PAY using numerical indices
vars = { 1, 2 };
{ vnam, mean, var, std, min, max, valid, mis } = dstat(file, vars);

After the above code,

------------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum   Valid  Missing
------------------------------------------------------------------------------
AGE           -----     -----       -----    1.0000   10.0000     400    0
PAY          1.9675    0.8019      0.6431    1.0000    3.0000     400    0

Example 4

file = getGAUSShome() $+ "examples/freqdata.dat";

// Calculate statistics on just AGE and PAY using __miss
vars = { 1, 2 };

// Drop rows with missing values
__miss = 1;
{ vnam, mean, var, std, min, max, valid, mis } = dstat(file, vars);

After the above code,

------------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum   Valid  Missing
------------------------------------------------------------------------------
AGE          5.6784    2.9932      8.9593    1.0000   10.0000     398    2
PAY          1.9623    0.8006      0.6409    1.0000    3.0000     398    2

Example 5

/*
** Calculate statistics using formula string and  __miss
** Set up a formula string with all variables exclude "sex"
*/
vars = ". - sex";

// Drop rows with missing values
__miss = 1;
{ vnam, mean, var, std, min, max, valid, mis } = dstat(file, vars);

After the above code,

-----------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum   Valid Missing
-----------------------------------------------------------------------------
AGE          5.6784    2.9932      8.9593    1.0000   10.0000     398    2
PAY          1.9623    0.8006      0.6409    1.0000    3.0000     398    2
WT           1.4713    0.3009      0.0906    1.0000    1.9900     398    2

Example 6

Descriptive statistics on a matrix.

data = { 1 2, 3 4, 5 6, 7 8 };
call dstat("", data);

After the above code,

-----------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum   Valid Missing
-----------------------------------------------------------------------------
X1                4     2.582       6.667         1         7       4    0
X2                5     2.582       6.667         2         8       4    0

Example 7

Specify variable names.

// Note the use of the matrix concatenation operator, '|'
// instead of the string concatenation operator, `$|`,
// makes this a 2x1 character vector
__altnam = "ALPHA" | "BETA";
data = { 1 2, 3 4, 5 6, 7 8 };
call dstat("", data);

After the above code,

-----------------------------------------------------------------------------
Variable       Mean   Std Dev    Variance   Minimum   Maximum   Valid Missing
-----------------------------------------------------------------------------
ALPHA             4     2.582       6.667         1         7       4    0
BETA              5     2.582       6.667         2         8       4    0

Remarks

1. If pairwise deletion is used, the minima and maxima will be the true values for the valid data. The means and standard deviations will be computed using the correct number of valid observations for each variable.

  1. The supported dataset types are CSV, XLS, XLSX, HDF5, FMT, DAT, DTA.

For HDF5 file, the dataset must include file schema and both file name and dataset name must be provided, e.g. dstat("h5://C:/gauss/examples/testdata.h5/mydata", formula)

See also

Formula String

Source

dstat.src