Hallo,
Ich habe ein System, das Daten kalibriert und die Informationen wie folgt ausgibt:
| Reifen-ID | Treten | Tiefe | Ziehen | uns | psi |
| 2326 | Innere | 0,618584 | 0,117774 | 0,417314 | 21.15549 |
| 2326 | Äußere | 0,740841 | 0,417079 | 0,417314 | 21.15549 |
| 2327 | Innere | 0,329065 | 0,218903 | 0,365071 | 25.65573 |
| 2327 | Äußere | 0,478055 | 0,214953 | 0,365071 | 25.65573 |
Die Reifen-ID wird zweimal gelesen, einmal für die inneren Profilwerte und einmal für die Außenseite. Gibt es ein Skript, mit dem ich es so reorganisieren kann:
| Reifen-ID | Innere Tiefe | Äußere Tiefe | Innerer Widerstand | Außenwiderstand | uns | psi |
| 2326 | 0,61858445 | 0,74084057 | 0,1177737 | 0,4170794 | 0,41731 | 21.1555 |
| 2327 | 0,32906451 | 0,47805545 | 0,2189025 | 0,2149527 | 0,36507 | 25.6557 |
Hier gibt es nur einen Eintrag pro Reifen. Die Einträge für Depth und Drag wurden in Inner bzw. Outer umbenannt und die identischen Spalten einfach zu einer zusammengeführt. Dies ist ein Ausschnitt aus einem viel größeren Blatt mit viel mehr Spalten - einige anders, andere gleich.
Im Idealfall kann das Skript anhand der müden ID feststellen, welche Zellen gleich sind, und nur Replikate entfernen. Aber ein Skript, das mit vordefinierten Namen eingerichtet ist, könnte auch funktionieren, da sich die Spaltennamen nie ändern.
Vielen Dank!
@jthi , @txnelson , ihr zwei habt letztes Mal enorm geholfen! Danke für das! Ich weiß nicht wirklich, welchen Ansatz ich wählen soll, und konnte in früheren Lösungen nichts Ähnliches finden.
Schön Jim!Viel besser als mein Brute-Force-Ansatz.Ich würde uS und psi zu den Gruppenspalten gemäß hinzufügen @Arocha1 s Bitte.


Was Sie verlangen, ist über die Split-Plattform verfügbar
Tabellen=>Split
Nachdem Sie die Split-Plattform geöffnet haben, richten Sie den Bildschirm wie unten gezeigt ein

Sobald Sie auf OK klicken, wird eine neue Datentabelle erstellt

Das Skript zum Durchführen der Teilung ist im Quelleintrag der Datentabelle enthalten
Klicken Sie einfach mit der rechten Maustaste auf das Wort Quelle

und wählen Sie Bearbeiten
Das Bearbeitungsfenster wird geöffnet und zeigt die JSL an, die zum Ausführen des Splits und zum Erstellen der gewünschten Datentabelle erforderlich ist.

Schneiden Sie einfach die JSL aus dem Bearbeitungsfenster aus und fügen Sie sie in Ihr Skript ein
Dies ist ein Brute-Force-Ansatz, aber er funktioniert.Beachten Sie die Variablen für geteilte Spalten und nicht geteilte Spalten.
dt = New Table( "Base Tire Data", Add Rows( 4 ),
New Column( "Tire ID", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [2326, 2326, 2327, 2327] ) ),
New Column( "Tread", Character( 16 ), "Nominal",
Set Values( {"Inner", "Outer", "Inner", "Outer"} ) ),
New Column( "Depth", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.618584, 0.740841, 0.329065, 0.478055] ) ),
New Column( "Drag", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.117774, 0.417079, 0.218903, 0.214953] ) ),
New Column( "uS", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.417314, 0.417314, 0.365071, 0.365071] ) ),
New Column( "psi", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [21.15549, 21.15549, 25.65573, 25.65573] ) )
);
nr = nrows(dt);
dtt = New Table( "Split Tires");
dtt << new column("Tire ID", Numeric, "Continuous", Format( "Best", 12 ));
split_cols = {"Depth", "Drag"};
nonsplit_cols = {"uS", "psi"};
for (i = 1, i <= nitems(split_cols), i++,
inn_col = "Inner " || split_cols[i];
out_col = "Outer " || split_cols[i];
dtt << new column(inn_col, Numeric, "Continuous", Format( "Best", 12 ));
dtt << new column(out_col, Numeric, "Continuous", Format( "Best", 12 ));
);
for (i = 1, i <= nitems(nonsplit_cols), i++,
one_col = nonsplit_cols[i];
dtt << new column(one_col, Numeric, "Continuous", Format( "Best", 12 ));
);
dtt << Add Rows( nr/2 );
k = 0;
for (i = 1, i <= nr, i+=2,
k++;
for (m = 1, m <= nitems(split_cols), m++,
one_col = split_cols[m];
inn_col = "Inner " || split_cols[m];
out_col = "Outer " || split_cols[m];
column(dtt, inn_col)[k] = column(dt, one_col)[i];
column(dtt, out_col)[k] = column(dt, one_col)[i+1];
);
column(dtt, "Tire ID")[k] = column(dt, "Tire ID")[i];
for (m = 1, m <= nitems(nonsplit_cols), m++,
one_col = nonsplit_cols[m];
column(dtt, one_col)[k] = column(dt, one_col)[i];
);
);