¿Cómo asigna una variable de una lista a una fila en una tabla de datos?Estoy trabajando con una tabla de datos que tiene un número variable de filas. Quiero asignar una descripción categórica que definiré a una nueva columna llamada 'Razón 1'. Esta columna 'Razón 1' se asignará cuando la columna 'Nombre' coincida con cualquiera de las cadenas en cualquiera de las listas que he definido.
La entrada de la fila 'Nombre' coincidirá exactamente con una entrada en las listas ::slitter, ::label o ::case.
Quiero asignar los diferentes códigos de motivo 1 a todas las filas y luego analizar los datos de acuerdo con cada motivo 1.
dt1 << New Column("Reason 1", Character, "Nominal");
Nrows = N Rows(dt1);
For( i =1, i<=Nrows, i++
For( j=1, j<= N items( ::slitter ), j++,
If(:Name(i) == Eval(slitter(j)), :Reason 1(i) = "Slitter");
);
);
// %Slitter% description codes
slitter = {"TM2300-370",
"TM2300-380",
"TM2300-385",
"TM2300-390",
"TM2300-395",
"TM2300-400"};<BR /><BR />// %Label% description codes (8)<BR />::label = {"TM2300-020",<BR />"TM2300-025",<BR />"TM2300-070",<BR />"TM2300-075",<BR />"TM2300-080",<BR />"TM2300-085",<BR />"TM2300-090",<BR />"TM2300-095"};<BR /><BR />//%Case% description codes (7)<BR />::case = {"TM2300-030",<BR />"TM2300-035",<BR />"TM2300-040",<BR />"TM2300-045",<BR />"TM2300-050",<BR />"TM2300-055",<BR />"TM2300-060"};Tabla de datossecuencias de comandosventanasRe: ¿Cómo asignas una variable de una lista a una fila en una tabla de datos?Tiene un par de errores de sintaxis y un bucle For ineficaz para buscar coincidencias que se pueden reemplazar mediante el uso de una función Contiene().También agregué un método para crear la nueva columna de fórmula para hacer el mismo cálculo.
Names Default To Here( 1 );
dt1=current data table();
dt1 << New Column( "Reason 1", Character, "Nominal" );
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
Nrows = N Rows( dt1 );
For( i = 1, i <= Nrows, i++,
If( Contains( slitter, :Name[i] ) == 1,
:Reason 1[i] = "Slitter"
)
);
// or
dt1 << New Column( "Reason 2",
character,
formula(
If( Row() == 1,
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"}
);
If( Contains( slitter, :Name ) == 1,
:Reason 2 = "Slitter"
);
)
);Re: ¿Cómo asignas una variable de una lista a una fila en una tabla de datos?Hay otra forma que usa obtener filas donde y contiene.No se requiere bucle.
dt = data table("Sample Data Set-1");
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
match_rows = dt << get rows where(contains(slitter, :Name));
dt:Reason 1[match_rows] = "Slitter";Re: ¿Cómo asignas una variable de una lista a una fila en una tabla de datos?Inicialmente, mi mente entró en un bucle para completar lo que quería hacer, ¡pero gracias por esta solución alternativa!
Esto categorizó mis datos exactamente como yo quería.