Choose Language Hide Translation Bar
Highlighted
Level II

## DOE All Possible Combinations

Hello all,

I have a relatively problem that I can't seem to crack within the DOE platform. I've done it before, but now I can't recall how precisely.

I am collecting two measurements (Valence and Intensity) across 4 samples. I want to control for the order the samples are presented.  I want to create a table with all possible order of samples (preferably 2 sets, so each combination appears twice).

I have set Sample as a catagorical, 4 level factor.
I have tried time as both catagorical and continuous, without luck.

What am I missing?

4 REPLIES 4
Highlighted
Super User

## Re: DOE All Possible Combinations

If I am interpreting what you are asking for, you need a Full Factorial Design with 2 Responses, and 4 Factors, each with 4 levels, and 1 Replicate.

It produces a table with a randomized order of all possible combinations times 2.

Jim
Highlighted
Level II

## Re: DOE All Possible Combinations

Hi Jim!

Thank you for your response. That is pretty close! One thing I failed to specify was that I only need each factor to appear once in each pattern.

For Example

1234

1243

1342

1324

Highlighted
Staff

## Re: DOE All Possible Combinations

Thinking out loud here...can you accomplish this in the Custom Design platform through using the disallowed combinations filter? Essentially you're constraining your design space so any time I see that I'm led to the JMP Custom Design platform.

Highlighted
Super User

## Re: DOE All Possible Combinations

If all you are looking for is a test order generator, and not a complete DOE solution, the little "brute force" script I put together will give you random test orders for all of the combinations you are looking for:

dt = New Table( "Order", New Column( "Group" ), New Column( "Order", character ), New Column( "Random" ) );

For( a = 1, a <= 4, a++,

For( b = 1, b <= 4, b++,

For( c = 1, c <= 4, c++,

For( d = 1, d <= 4, d++,

Pattern = Char( a ) || Char( b ) || Char( c ) || Char( d );

If(

Sum(

Contains( pattern, "1" ) > 0,

Contains( pattern, "2" ) > 0,

Contains( pattern, "3" ) > 0,

Contains( pattern, "4" ) > 0

) == 4,

dt << add rows( 2 );

dt:Group[N Rows( dt ) - 1] = 1;

dt:Group[N Rows( dt )] = 2;

dt:Order[N Rows( dt ) - 1] = pattern;

dt:Order[N Rows( dt )] = pattern;

dt:Random[N Rows( dt ) - 1] = Random Uniform();

dt:Random[N Rows( dt )] = Random Uniform();

);

)

)

)

);

dt << Sort(

By( :Group, :Random ),

Order( Ascending, Ascending ),

Replace table( 1 )

);

dt << delete Columns("Random");

Jim