Hola,
Tengo un sistema que calibra los datos y genera la información de la siguiente manera:
| identificación del neumático | Huella | Profundidad | Arrastrar | nosotros | psi |
| 2326 | Interno | 0.618584 | 0.117774 | 0.417314 | 21.15549 |
| 2326 | Exterior | 0.740841 | 0.417079 | 0.417314 | 21.15549 |
| 2327 | Interno | 0.329065 | 0.218903 | 0.365071 | 25.65573 |
| 2327 | Exterior | 0.478055 | 0.214953 | 0.365071 | 25.65573 |
La identificación del neumático se lee dos veces, una para las lecturas de la banda de rodadura interior y otra para la exterior. ¿Hay un script que pueda usar para reorganizarlo como tal?
| identificación del neumático | Profundidad interior | Profundidad exterior | Arrastre interior | Arrastre exterior | nosotros | 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 |
Aquí, solo hay una entrada por neumático. Las entradas para Profundidad y Arrastre se han renombrado como Interior o Exterior y las columnas idénticas se han fusionado en una sola. Este es un fragmento de una hoja mucho más grande con muchas más columnas, algunas diferentes, otras iguales.
Idealmente, la secuencia de comandos puede determinar qué celdas son iguales según la identificación cansada y simplemente eliminar las réplicas. Pero una secuencia de comandos configurada con nombres predeterminados también podría funcionar, ya que los nombres de las columnas nunca cambian.
¡Gracias!
@jthi , @txnelson , ¡ustedes dos ayudaron tremendamente la última vez! ¡Gracias por eso! Realmente no sé qué enfoque tomar y no he podido encontrar nada lo suficientemente similar en soluciones anteriores.
Este es un enfoque de fuerza bruta, pero funciona.Tenga en cuenta las variables para columnas divididas y columnas no divididas.
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];
);
);