Hallo
Ich versuche , alle Daten in der Zeile, in der der Wert in der Spalte „Ablehnungen“ ==Y lautet, in eine neue Tabelle mit dem Namen „Ablehnungen“ zu unterteilen.
Ich habe mehrere Möglichkeiten ausprobiert, aber keine davon funktioniert und ich erhalte die Fehlermeldung:
„Unerwartetes „Split_dt“. Möglicherweise fehlt ein „;“ oder „“,.
Zeile 77, Spalte 1: ►Split_dt << Select Where( :is rejects? == "Y" );"
dieser Code ist Teil eines größeren Skripts, das die Spalte „ Ist es Ablehnungen?“ erstellt.
wenn ich das gesamte Skript ausführe, erhalte ich den oben genannten Fehler, aber wenn ich es separat ausführe, funktioniert es.
was kann ich tun, um das Problem zu beheben?
Option 1:
rejects = Split_dt << Subset(
Where(:is rejects? == "Y"),
Output Table Name("rejects"),
All Columns
);
Option 2:
Split_dt << Select Where(:is rejects? == "Y");
rejects = Split_dt << Subset(Output Table Name("rejects"), All Columns);
das vollständige Skript:
Split_dt = Current Data Table();
Split_dt << New Column("is rejects?", character, Formula("N"));
Column(Split_dt, "is rejects?") << Delete Formula;
// Get the number of columns in the data table
numCols = N Cols(Split_dt);
// Iterate over each row in the data table
For Each Row(
// Iterate over each column starting from column 6
For(colIndex = 6, colIndex <= numCols, colIndex++,
// Get the column reference
currentCol = Column(Split_dt, colIndex);
// Check if the value in the current cell is greater than 100 and "is rejects?" is "N"
If(
currentCol[] > 100 & :is rejects? == "N" & Contains(currentCol << Get Name, "BI")
== 0,
// Change the value in the "is rejects?" column to "Y"
:is rejects? = "Y";
// Exit the loop early since we only need one match
Break();
);
)
);
rejects = Split_dt << Subset(
Where(:is rejects? == "Y"),
Output Table Name("rejects"),
All Columns
);
Normalerweise verwende ich Rows(), wenn ich bestimmte Zeilen unterteile (Sie können auch ausgewählte Zeilen unterteilen, aber normalerweise führen Sie dabei unnötige Auswahlen in der Tabelle aus).
Dieses Beispiel erfasst alle Zeilen mit dem Geschlecht == „F“.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
rows_to_subset = dt << get rows where(:sex == "F");
dt_subset = dt << Subset(Rows(rows_to_subset), Output Table("Subset F"));vielen Dank für die schnelle Antwort.
die von Ihnen vorgeschlagene Lösung führt zum gleichen Fehler:(
Welche JMP-Version verwenden Sie? Haben Sie mein Beispielskript ausprobiert?
Versuchen
rejects = Split_dt << Subset(
Filtered Rows(:is rejects? == "Y"),
Output Table Name("rejects"),
All Columns
);