Hola mundo, novato en JSL. Tengo una tabla de datos en el siguiente formato. Las columnas son BIN, TOF (tuvo error o no), RWED (rehizo la soldadura) y MP (ensamblada por).No genera los resultados finales y finaliza después del Paso 1 (descrito a continuación).¿Cómo puedo arreglarlo?
| PAPELERA | TOF | RWED | diputado |
| 1001 | Y | 1 | 31A |
| 1001 | norte | | 31A |
| 1001 | norte | | 31A |
| 1001 | Y | 1 | 31A |
| 1002 | norte | | 31A |
| 1002 | norte | | 31B |
| 1002 | norte | | 31B |
| 1002 | Y | 1 | 31B |
| 1003 | Y | 1 | 31A |
| 1003 | Y | 1 | 31B |
Estoy intentando seguir los pasos para lograr los resultados finales que quiero, que son RWED por porcentaje del número total o unidades ensambladas en ese BIN.
Paso 1: crea una tabla resumen
| PAPELERA | N filas | diputado | Suma(RWED) |
| 1001 | 4 | 31A | 2 |
| 1002 | 1 | 31A | 0 |
| 1002 | 3 | 31B | 1 |
| 1003 | 1 | 31A | 1 |
| 1003 | 1 | 31B | 1 |
Paso 2: Cambie el nombre de la tabla de resumen "Sum(RWED)" a "TRWED" y agregue la columna con la fórmula "RWRat" para calcular la tasa de soldadura por número total de unidades unidas por BIN por MP
| PAPELERA | N filas | diputado | 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 |
Paso 3: transponer la tabla al resultado final y guardar la tabla
| PAPELERA | 31A | 31B |
| 1001 | 50 | 0 |
| 1002 | 0 | 33.33 |
| 1003 | 100 | 100 |
Hice el siguiente script
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 Gracias por la rápida respuesta.
Después de crear la columna RWRat, veo que no se agregan los valores calculados a la columna. ¿Es por la columna "N filas"? La columna "N filas" se crea cuando hago la tabla de resumen. ¿Tengo que cambiar el nombre de esa columna si quiero reutilizarla en la fórmula?
El formato de la tabla de salida final es correcto para mí, pero los valores de mi tabla aparecen en blanco.
También yo TXN_WW==BIN. Ese fue mi error.
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" )
);