Eine bessere Möglichkeit, eine For-Schleife mit zwei Listen zu erstellen?Anfänger hier. Ich habe eine verschachtelte For-Schleife, die zwei Listen verwendet, die bestimmte Diagnosecodes aus mehreren Diagnosespalten auswählen. Es funktioniert, aber ich frage mich, ob es eine bessere Möglichkeit gibt, es zu codieren.
ColumnList = {"DIAGNOSIS_1", "DIAGNOSIS_2", "DIAGNOSIS_3"};
ValueList = {"E871","O480","J449"};*/
For( i = 1, i <= N Items( ColumnList ), i++,
ColumnItem = ColumnList[i];
Eval(
Eval Expr(
As Constant( col = As Name( Expr( ColumnItem ) ) );
For( j = 1, j <= N Items( ValueList ), j++,
ValueItem = ValueList[j];
all_ip << select where( As Column( col ) == ValueItem, Current Selection( "extend" ) );
);
)
);
);
Konsumenten- und MarktforschungDatenzugriffBetreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Entschuldigen Sie die Verzögerung. Ich musste auf 17 aktualisieren. Und Ihr Code funktioniert perfekt! Danke.
Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen zu erstellen?Ich schätze, Sie haben Recht, dass sie genau das tun wollen. Außerdem könnten Sie, selbst wenn es dynamisch wäre, so etwas tun wie:
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
col_dict = ["height"=>{13, 128, 60},
"weight"=>{95, 123, 79, 105},
"age"=>{17}
];
//create an orexpression
or_expr = Expr(OR());
for(key = col_dict<<FIRST></FIRST>Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Und das wäre es. Ich bin immer noch bei 15. Ich hätte schwören können, dass ich aktualisiert habe. COVID hat mich beschäftigt.
Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Per Scripting Index in JMP 17: hinzugefügt in JMP 16 (JMP oder JMP Pro)

Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen zu erstellen?reguläres JMP, seit 16.
Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Ist For Each() nur in Pro verfügbar? Ich habe nur Basic und es funktioniert nicht. Oder habe ich irgendwo ein Update verpasst?
Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Oder sogar das
dt = Open( "$sample_data/big class.jmp" );
ValueList = {13, 128, 60};
dt << select where( Contains( ValueList, :height ) | Contains( ValueList, :weight ) | Contains( ValueList, :age ) );
Stellen Sie sich einfach vor, dass Größe, Gewicht und Alter alle dieselben Einheiten wären, ähnlich wie die Diagnosespalten. Ich denke, das ist, was Sie wollen, wenn die Anzahl der Diagnosespalten immer drei beträgt.
Betreff: Gibt es eine bessere Möglichkeit, eine For-Schleife mit zwei Listen durchzuführen?Vielleicht ist es das, was Sie versuchen.
dt = Open( "$sample_data/big class.jmp" );
ColumnList = {"height", "weight", "age"};
ValueList = {13, 128, 60};
For Each( {col}, ColumnList,
For Each( {ValueItem}, ValueList,
dt << select where( As Column( dt, col ) == ValueItem, Current Selection( "extend" ) )
)
);
oder sogar das
dt = Open( "$sample_data/big class.jmp" );
ColumnList = {:height, :weight, :age};
ValueList = {13, 128, 60};
For Each( {col}, ColumnList,
For Each( {ValueItem}, ValueList, dt << select where( col == ValueItem, Current Selection( "extend" ) ) )
);
(Bei Ihren Daten macht das vielleicht Sinn, aber bei einer großen Klasse macht es nicht viel Sinn, Zeilen auszuwählen, bei denen Größe oder Gewicht oder Alter 13 sind, oder bei denen Größe oder Gewicht oder Alter 128 sind, oder bei denen Größe oder Gewicht oder Alter 60 sind. Ich verwende es nur, um zu versuchen, das zu treffen, was Sie meiner Meinung nach meinen.)