¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Hola a todos
Usé obtener filas donde () para obtener una serie de filas y quiero asignar los valores en las filas debajo de la columna b a las mismas filas debajo de otra columna, como a continuación
rows = dt << get rows where (column("b")[ ] == "xxx");<BR />column ("a")[rows] = column ("b") [rows];
Pero no funciona, quiero saber si hay alguna forma de asignar una serie de valores a las filas seleccionadas sin usar un bucle for?
Gracias
secuencias de comandosRe: ¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Esa es una buena pista.
¡Muchas gracias!Re: ¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Subíndice de tabla de datos podría ser lo que estás buscando. Probablemente puedas usar algo como dt[filas,{a}] = dt[filas,{b}]; donde filas es una matriz con los índices de fila y {a} y {b} son listas de columnas. También necesitará el dt explícito que devuelve open() cuando abre la tabla, o por otras funciones como subset(), etc. que crean nuevas tablas.
Re: ¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Otros pueden tener una forma más eficiente de hacer esto, pero aquí está mi solución
names default to here(1);
dt=open("$sample_data/big class.jmp");
// Create a new table with the same number of rows and a new
// character column called Gender
dtNew = New Table("New Table", add rows(nrows(dt)),
New Column("Gender",character)
);
// Assign to all rows in big class that are females, the value
// of "Female" to the same rows in New Table
values = dt:sex << get values;
dtNew:Gender << set values(values);
dtNew:Gender[dt<<GET rows="" where=""></GET>Re: ¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Gracias por su respuesta.
Pero en lugar de asignar "un cierto valor", quiero asignar "una serie de valores" a las filas correspondientes sin un bucle for.Re: ¿Cómo asignar una serie de valores a las filas seleccionadas sin usar un bucle for?Aquí hay un ejemplo que muestra una forma de resolver su problema
names default to here(1);
dt=open("$sample_data/big class.jmp");
// Create a new table with the same number of rows and a new
// character column called Gender
dtNew = New Table("New Table", add rows(nrows(dt)),
New Column("Gender",character)
);
// Assign to all rows in big class that are females, the value
// of "Female" to the same rows in New Table
dtNew:Gender[dt<<GET rows="" where=""></GET>