Hallo
Ich habe eine Teilmenge verwendet, um alle Faktoren für 8 Faktoren zu generieren, zum Beispiel für 2 aktive Faktoren, die mit F1 mit F2, F1 mit F3 beginnen, bis die Faktoren F7 mit F8, also habe ich die Schleife verwendet, um fortzufahren, bis 6 von 8 aktiven Faktoren gefunden wurden
Mein Problem, wenn ich versuche, alle Designs zu bewerten, zeigt es mich nur für ein Design, sodass es für alle anderen 27 Designs keine Bewertungsschleife gibt
Ich hoffe mein Drehbuch kann erklären was ich will.
dt2_5_2=New Table( "First Example",
Add Rows( 17 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, -1, -1, 0, -1, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, 1, 1] )
),
New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 0, 1, 0, 1, -1, 1, 0, -1, -1, 0, -1, 0, -1, 1, -1] )
),
New Column( "Column 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 0, 1, -1, 1, -1, -1, 0, 0, -1, 0, -1, 1, -1, 1, 1, 0] )
),
New Column( "Column 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, -1, 1, 1, -1, -1, 0, 1, 0, 0, 1, -1, -1, 1, 1, 0, -1] )
),
New Column( "Column 5",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 0, -1, 1, 1, -1, 1, 0, 0, -1, 0, 1, -1, -1, 1, -1, 0] )
),
New Column( "Column 6",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, -1, 1, 1, 1, 1, 0, -1, 0, 0, 1, -1, -1, -1, -1, 0, 1] )
),
New Column( "Column 7",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 0, -1, 0, 1, -1, 0, -1, -1, -1, 0, 1, 0, -1, 1] )
),
New Column( "Column 8",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, -1, 0, -1, 0, 1, 1, 1, 0, -1, 1, 0, 1, 0, -1, -1, -1] )
),
Set Row States( [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] )
);
NamesDefaultToHere(1);
dt = DataTable("First Example");
cols = dt << getColumnNames;
for(c1 = 1, c1<= NItems(cols), c1++,
for(c2 = c1+1, c2 <= NItems(cols), c2++,
for(c3= c2+1, c3 <= NItems(cols), c3++,
for(c4= c3+1, c4 <= NItems(cols), c4++,
for(c5= c4+1, c5 <= NItems(cols), c5++,
for(c6= c5+1, c6 <= NItems(cols), c6++,
//dt << Subset(Columns(cols[c1], cols[c2]))
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5]));
dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5], cols[c6]));
DOE(
Evaluate Design,
X( :Column 1, :Column 2, :Column 3, :Column 4, :Column 5, :Column 6 ),
{Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Term( {4, 1} ), Add Term( {5, 1} ), Add Term( {6, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {4, 1} ), Add Alias Term( {1, 1}, {5, 1} ),
Add Alias Term( {1, 1}, {6, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {5, 1} ),
Add Alias Term( {2, 1}, {6, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {5, 1} ), Add Alias Term( {4, 1}, {6, 1} ),
Add Alias Term( {5, 1}, {6, 1} )}
);
);
);
);
);
);
);
Danke vielmals
Medo
Das Problem ist, dass Sie die Spaltennamen Column 1, Column 2, ..., Column 6 im DOE-Teil (Evaluate Design, ...) des Skripts fest codiert haben und nur die erste Teilmenge, die aus Ihrer Schleife generiert wurde, diese enthält Reihe von Spalten.
Versuchen Sie dies stattdessen:
For( c1 = 1, c1 <= N Items( cols ), c1++,
For( c2 = c1 + 1, c2 <= N Items( cols ), c2++,
For( c3 = c2 + 1, c3 <= N Items( cols ), c3++,
For( c4 = c3 + 1, c4 <= N Items( cols ), c4++,
For( c5 = c4 + 1, c5 <= N Items( cols ), c5++,
For( c6 = c5 + 1, c6 <= N Items( cols ), c6++,
//dt << Subset(Columns(cols[c1], cols[c2]))
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5]));
dt2 = dt << Subset(
Columns(
cols[c1],
cols[c2],
cols[c3],
cols[c4],
cols[c5],
cols[c6]
)
);
dt2 << Evaluate Design(
X(
cols[c1],
cols[c2],
cols[c3],
cols[c4],
cols[c5],
cols[c6]
),
{Add Term( {1, 0} ), Add Term( {1, 1} ),
Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Term( {4, 1} ), Add Term( {5, 1} ),
Add Term( {6, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {1, 1}, {5, 1} ),
Add Alias Term( {1, 1}, {6, 1} ),
Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ),
Add Alias Term( {2, 1}, {5, 1} ),
Add Alias Term( {2, 1}, {6, 1} ),
Add Alias Term( {3, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {5, 1} ),
Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {5, 1} ),
Add Alias Term( {4, 1}, {6, 1} ),
Add Alias Term( {5, 1}, {6, 1} )}
);
Close(dt2, no save);
)
)
)
)
)
);Sie werden bemerken, dass ich die Spaltenreferenzen in cols [c1], cols [c2] usw. geändert habe. Ich habe auch die Subset-Datentabelle dt2 benannt und jede Subset-Datentabelle nach der Erstellung des Evaluate Design-Berichts geschlossen, um den Arbeitsbereich in JMP nicht weiter zu überfrachten.