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 nur 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 feststellen, welche Zellen gemäß der müden ID gleich sind, und einfach Replikate entfernen. Aber ein Skript, das mit vordefinierten Namen eingerichtet ist, könnte auch funktionieren, da sich die Spaltennamen nie ändern.
Danke!
@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.
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];
);
);