Skript für Spaltenstapel nach Präfix für variable SpaltenanzahlIch versuche, ein allgemeines Skript zu erstellen, das meine Daten aus Excel als Datentabelle importiert und dann meine Spalten basierend auf dem Präfix des Spaltennamens stapelt. Ich wünsche mir, dass es auf verschiedene Datensätze angewendet wird (nicht zur gleichen Zeit - nur ein allgemeines Skript, das für alle gelten könnte) - jeweils mit unterschiedlichen Probennummern (Spalten), wobei jede Datenspalte wie folgt angegeben ist: ), S02 Vol. Dichte (%), S03 Vol. Dichte (%) ... Sn Vol-Dichte (wobei n eine beliebige ganze Zahl ist).
Ich denke, der Weg dazu ist, die Spalten nach dem Präfix zu gruppieren und die Gruppe dann zu stapeln. Allerdings bin ich nicht sicher, wie ich damit vorgehen soll.
Ich hoffe, das hat Sinn gemacht - noch etwas Neues beim Scripting. Tut mir leid, wenn meine Frage nicht klar ist
Hinweis: Der Import von Daten ist kein Problem, sondern nur das Stapeln
Re: Skript für Spaltenstapel nach Präfix für variable SpaltenanzahlJa, so kannst du das machen:
For( i = 1, i <= N Col( dt ), i++,
temp_name = Column( dt, i ) << Get Name;
If( Contains( temp_name, "Vol Density" ) > 0,
Column( dt, i ) << Set Name( Word( 1, temp_name ) )
);
);
Re: Skript für Spaltenstapel nach Präfix für variable SpaltenanzahlVielen Dank! Wenn ich dann die Spalte umcodieren möchte (mit einem Skript), so dass nur das Präfix übrig bleibt, also nur S01, S02 usw. gelesen wird, kann dies auf ähnliche Weise wie beim Stack geschehen?Re: Skript für Spaltenstapel nach Präfix für variable SpaltenanzahlHallo @nhun .
Willkommen in der Community!
Dies ist ziemlich einfach in nur einer kurzen Menge Code durchzuführen. So können Sie die Spaltennamen durchlaufen und die mit den übereinstimmenden Teilzeichenfolgen in eine Liste einfügen, die mit Stack verwendet werden kann. Ich verwende den Thickness-Datensatz aus der Sample Data Library.
dt = Open("$SAMPLE_DATA/Quality Control/Thickness.jmp");
stack_cols = {}; //list to hold the names of columns I want to stack
str_match = "Thickness"; //Substring in column name I want to find
names = dt << Get Column Names;
for(i=1,i<=N Items(names),i++,
If(Contains(char(names[i]),str_match) > 0,
Insert Into(stack_cols, names[i])
)
);
dt << Stack(
columns(stack_cols),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);Sie müssen nur das dt durch Ihre eigene Tabelle und str_match = "Vol Density" ersetzen.