Restringir para cada()Soy relativamente nuevo en la función For Each(), así que tengan paciencia. El siguiente script cumple con mis necesidades, excepto que quiero restringir las columnas sobre las que actúa. ¿Quiero que actúe solo en las columnas 3 y superiores? Es bastante sencillo con una función For(), pero no estoy seguro de cómo funciona aquí.
For Each({colnames, index}, dt << Get Column Names("String"),
rows_to_color = dt << Get Rows Where((Column(dt, colnames)[]<100));
Column(dt, colnames) << Color Cells("Red", rows_to_color);
);Automatización y scriptingRe: Restringir para cada()Elimina los valores de la lista antes de comenzar a revisarla.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
collist = dt << Get Column Names("String");
Remove From(collist, 1, 3);
show(collist);
For Each({colnames, index}, collist,
rows_to_color = dt << Get Rows Where((Column(dt, colnames)[] < 100));
Column(dt, colnames) << Color Cells("Red", rows_to_color);
);Re: Restringir para cada()También puedes hacerlo dentro del for each cuando defines la lista, pero en mi opinión es mejor hacerlo antes (más fácil de leer y depurar)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
For Each({colname, index}, Remove(dt << Get Column Names("String"), 1, 3),
show(colname);
);
O si recopilas la lista antes, puedes simplemente recorrer elementos específicos
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
collist = dt << Get Column Names("String");
For Each({colname, index}, collist[4::N Items(collist)],
show(colname);
);Re: Restringir para cada()¡Genial! Funciona bien.