# combinated¶

## Purpose¶

Writes combinations of N things taken K at a time to a GAUSS dataset.

## Format¶

ret = combinated(fname, vnames, N, K)
Parameters
• fname (string) – file name.

• vname (1x1 or Kx1 string array) – names of columns in dataset. If 1x1 string, names will have column number appended. If null string, names will be X1, X2, ...

• N (scalar) – Total number of things in population.

• K (scalar) – Number of things drawn each time.

Returns

ret (scalar) –

if dataset was successfully written, ret = number of rows written to dataset. Otherwise, one of the following:

 0 file already exists. -1 dataset couldn’t be created. -n the (n-1)th write to the dataset failed.

## Examples¶

// Note: The '$|' operator vertically concatenates strings vnames = "Jim"$| "Harry" $| "Susan"$| "Wendy";

/*
** Create a dataset file named 'couples.dat', containing all
** combinations of the names in 'vnames' taken 2 at a time
*/
k = 2;
m = combinated("couples.dat", "Spouse 1" \$| "Spouse 2", rows(vnames),k);

print m "rows were written to the dataset";


After the above code,

6.0000 rows were written to the dataset


Continuing from the code above:

// Open the file written above
fh = dataOpen("couples.dat", "read");

// Read in m=6 rows of the dataset into 'y'
y = readr(fh, m);
print "y = " y;

/*
** Get the variable names from the dataset and assign them
** to 'names'
*/
names = getnamef(fh);
fh = close(fh);
print names';

for i(1, rows(y),1);
print vnames[y[i, .]]';
endfor;


will produce the following output:

y =
1.0000000        2.0000000
1.0000000        3.0000000
1.0000000        4.0000000
2.0000000        3.0000000
2.0000000        4.0000000
3.0000000        4.0000000

Spouse 1         Spouse 2
Jim            Harry
Jim            Susan
Jim            Wendy
Harry            Susan
Harry            Wendy
Susan            Wendy


The first row of the output, Jim Harry, is the first and second element of vnames, because the first row of y is equal to 1 2. The fourth row of the output is Harry Susan, because the fourth row of y is 2 3 and Harry is the second element of vnames while Susan is the third element.

## Remarks¶

The rows of the dataset in fname contain sequences of the integers from 1 to N in combinations taken K at a time.