.-
help for ^cpr^
.-

Results for all possible combinations of arguments
--------------------------------------------------

    ^cpr^ list1 [ ^\^ list2 [ ^\^ list3 ] ... ]
    [ ^, noh^eader ^nos^top ^p^ause ] ^:^ stata_cmd

Description
-----------

^cpr^ repeats stata_cmd using all possible n-tuples of arguments from
between one and five lists: each possible argument from one list, each
possible pair of arguments from two lists, and so forth.

In stata_cmd, ^@@1^ indicates the argument from list1, ^@@2^ the
argument from list2, and so forth.

The elements of each list must be separated by spaces.

If there are n_j arguments in list j, j = 1, ..., k, the number of sets
of results is the product of the k n_j.

The name ^cpr^ is derived from Cartesian product.


Options
-------

^noheader^ suppresses the display of the command before each repetition.

^nostop^ does not stop the repetitions if one of the repetitions results
    in an error.

^pause^ pauses output after each execution of stata_cmd.  This may be
    useful, for example, under Stata for Windows when ^cpr^ is combined
    with ^graph^.


Remarks
-------

^cpr^ could lead to a lot of output. Consider the effects on paper and
patience, your own and your institution's.

^cpr^ is based on ^cp^ written for Stata 5.0. ^cp^ in Stata 6.0 is a
built-in command.

Like ^cp^, ^cpr^ does not understand quoted strings.

Unlike ^cp^, ^cpr^ does understand numlists.

Unlike ^for^, ^cpr^ does not understand varlists. A varlist will simply
be passed through to stata_cmd.


Examples
--------

        . ^cpr 2 4 6 : xtile mpg@@1 = mpg, n(@@1)^

        This executes

        . ^xtile mpg2 = mpg, n(2)^
        . ^xtile mpg4 = mpg, n(4)^
        . ^xtile mpg6 = mpg, n(6)^

        . ^cpr length weight mpg \ 2 4 : xtile @@1@@2 = @@1, n(@@2)^

        This executes

        . ^xtile length2 = length, n(2)^
        . ^xtile length4 = length, n(4)^
        . ^xtile weight2 = weight, n(2)^
        . ^xtile weight4 = weight, n(4)^
        . ^xtile mpg2 = mpg, n(2)^
        . ^xtile mpg4 = mpg, n(4)^

        . ^cpr mpg price \ length displ weight : regress @@1 @@2^

        This executes

        . ^regress mpg length^
        . ^regress mpg weight^
        . ^regress mpg displ^
        . ^regress price length^
        . ^regress price weight^
        . ^regress price displ^

        . ^cpr 1/5 \ 1/8 : mat A[@@1,@@2] = sqrt(A[@@1,@@2])^

        This executes an element-by-element replacement of each element
        of a 5 X 8 matrix with its square root.


Author
------

         Nicholas J. Cox, University of Durham, U.K.
         n.j.cox@@durham.ac.uk


Also see
--------

On-line:  help for @for@

