Hallo Welt, JSL-Neuling. Ich habe eine Datentabelle im folgenden Format. Die Spalten sind BIN, TOF (Fehler oder nicht), RWED (Schweißen erneut durchgeführt) und MP (zusammengebaut von).Die Endergebnisse werden nicht ausgegeben und nach Schritt 1 (unten beschrieben) beendet.Wie kann ich es reparieren?
| BEHÄLTER | TOF | RWED | Abgeordneter |
| 1001 | Y | 1 | 31A |
| 1001 | N | | 31A |
| 1001 | N | | 31A |
| 1001 | Y | 1 | 31A |
| 1002 | N | | 31A |
| 1002 | N | | 31B |
| 1002 | N | | 31B |
| 1002 | Y | 1 | 31B |
| 1003 | Y | 1 | 31A |
| 1003 | Y | 1 | 31B |
Ich versuche, die folgenden Schritte zu befolgen, um die gewünschten Endergebnisse zu erzielen, nämlich RWED als Prozentsatz der Gesamtzahl oder der zusammengebauten Einheiten in diesem BIN.
Schritt 1: Erstellen Sie eine Übersichtstabelle
| BEHÄLTER | N Zeilen | Abgeordneter | Summe(RWED) |
| 1001 | 4 | 31A | 2 |
| 1002 | 1 | 31A | 0 |
| 1002 | 3 | 31B | 1 |
| 1003 | 1 | 31A | 1 |
| 1003 | 1 | 31B | 1 |
Schritt 2: Benennen Sie die Übersichtstabelle „Sum(RWED)“ in „TRWED“ um und fügen Sie eine Spalte mit der Formel „RWRat“ hinzu, um die Wiederschweißrate anhand der Gesamtzahl der Einheiten nach BIN nach MP zu berechnen
| BEHÄLTER | N Zeilen | Abgeordneter | TRWED | RWRat |
| 1001 | 4 | 31A | 2 | 50 |
| 1002 | 1 | 31A | 0 | 0 |
| 1002 | 3 | 31B | 1 | 33.33 |
| 1003 | 1 | 31A | 1 | 100 |
| 1003 | 1 | 31B | 1 | 100 |
Schritt 3: Transponieren Sie die Tabelle in die endgültige Ausgabe und speichern Sie die Tabelle
| BEHÄLTER | 31A | 31B |
| 1001 | 50 | 0 |
| 1002 | 0 | 33.33 |
| 1003 | 100 | 100 |
Ich habe das folgende Skript erstellt
dt1 = Open( "smdt.csv" ); //Open the data table
Wait( 2 );
//Summary table creation
dt2 << Summary( Group( :BIN, :MP ), Sum( :RWED ), Freq( "None" ), Weight( "None" ), );
Column( dt2, "sum(:RWED)" ) << set name( "TRWED" );//renaming the summary table column
dt2 << New Column( "RWRat", Numeric, Continuous, Formula( Round( (:Name( "TRWED)" ) / :N Rows) * 100, 2 ) ) );//add new column to with formula
//Transpose the final results
Transpose( columns( :Name( "Sum(RWED)" ) ), By( :BIN ), Label( :MP ), Output Table( "RWRT By (BIN, MP)" ) );
dt2 << Save( "Stb.csv" );//Save the table
@txnelson Danke, für die schnelle Antwort.
Nach dem Erstellen der RWRat-Spalte sehe ich, dass die berechneten Werte nicht zur Spalte hinzugefügt werden. Liegt es an der Spalte „N Zeilen“? Die Spalte „N Zeilen“ wird erstellt, wenn ich die Übersichtstabelle erstelle. Muss ich diese Spalte umbenennen, wenn ich sie in der Formel wiederverwenden möchte?
Das endgültige Ausgabetabellenformat ist für mich korrekt, aber meine Tabellenwerte sind leer.
Auch ich TXN_WW==BIN. Das war mein Fehler.
names default to here(1);
dt1 = New Table( "Example",
Add Rows( 10 ),
New Script(
"Source",
Data Table( "Untitled 31" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "Bin",
Character,
"Nominal",
Set Values(
{"1001", "1001", "1001", "1001", "1002", "1002", "1002", "1002", "1003",
"1003"}
)
),
New Column( "TOF",
Character,
"Nominal",
Set Values( {"Y", "N", "N", "Y", "N", "N", "N", "Y", "Y", "Y"} )
),
New Column( "RWED",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, ., ., 1, ., ., ., 1, 1, 1] )
),
New Column( "MP",
Character,
"Nominal",
Set Values(
{"31A", "31A", "31A", "31A", "31A", "31B", "31B", "31B", "31A", "31B"}
)
)
);
dt2 = dt1 << Summary(
Group( :Bin, :MP ),
Sum( :RWED ),
Freq( "None" ),
Weight( "None" )
);
dt2:Name("Sum(RWED)") << set name( "TRWED" );
dt2 << NewColumn("RWRat", Numeric, Continuous, Formula(Round(:TRWED / :N Rows* 100, 2) ));
dt3 = dt2 << Transpose(
columns( :RWRat ),
By( :Bin ),
Label( :MP ),
Output Table( "\!"RWRT By (TXN_WW, MP" )
);