Wie konditioniere ich eine For-Schleife, damit sie nur für einen bestimmten Satz von Zeilen funktioniert?Hallo,
Ich versuche, eine Datentabelle mit einer Formel zu bearbeiten, möchte aber nur einige Zeilen lesen.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
For( i = r[1], i <= r, i++,
:HeadIC[i] = :HeadIC[i]/2
);
Show(r);
Wie kann ich dafür sorgen, dass nur für diese ausgewählten Zeilen eine Iteration durchgeführt wird?
Konsumenten- und MarktforschungMassenanpassungBetreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?So was?
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
For Each Row( If ( :Make == "Mazda", :HeadIC = :HeadIC/2 ));
(Und entschuldigen Sie die Formatierung, aber ich scheine diese "Skript einfügen" -Schaltflächen nie zum Laufen zu bringen ...)
Betreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?Da Sie in Ihrem Beispiel den Vektor mit den Zeilennummern erstellt haben, können Sie auch "For Each()" verwenden.Dies wäre schneller, insbesondere für eine größere Datentabelle (mit vielen Zeilen).
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
Betreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?Bitte entmystifizieren Sie dies für mich:
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
// specifically, where do {cr,ii} come from and what do they do?
Kein Codierer. Konnte dies nicht im Scripting-Index finden. Habe den Scripting Guide noch nicht überprüft.
Betreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?Hallo, ich bin mir nicht sicher, wie ich diese Funktion verwenden soll, ich kann sie nicht im Scripting-Index finden, können Sie ein Beispiel zeigen? Wenn ich versuche, den von Ihnen angegebenen Code auszuführen, werden Fehler angezeigt.
Betreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?For Each() ist eine neue Funktion, die in JMP16 eingeführt wurde. Wenn Sie also eine ältere Version von JMP verwenden, werden Sie sie nicht im Skriptindex finden (und es wird einen Fehler geben). Sie könnten es in eine for-Schleife konvertieren, wenn Sie wollten:
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
/*For Each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);*/
For(ii = 1, ii <= N Items(r), ii++,
cr = r[ii];
:headic[cr] = :headic[cr]/2;
);
For Each(names, container, locals, body) (jmp16-Hilfe)
Betreff: Wie konditioniere ich eine for-Schleife so, dass sie nur für einen bestimmten Satz von Zeilen funktioniert?Das ist merkwürdig. Beides funktioniert bei mir einwandfrei. Versuchen Sie erneut, den vollständigen Code jeder Lösung in einem separaten Skriptfenster zu veröffentlichen. Schließen Sie alles andere. Führen Sie zuerst den Code aus einem Skriptfenster aus und bestätigen Sie, dass der Code das tut, was er tun soll. Schließen Sie dann alles wieder, bis auf das andere Skriptfenster, das den Code enthält, den Sie noch testen müssen.