¿Cómo puedo condicionar un bucle for para que funcione solo para un conjunto particular de filas?Hola,
Estoy intentando manipular una tabla de datos con una fórmula, pero solo quiero que lea unas pocas filas.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
For( i = r[1], i <= r, i++,
:HeadIC[i] = :HeadIC[i]/2
);
Show(r);
¿Cómo puedo hacer para que solo se repita en las filas seleccionadas?
Investigación de mercados y consumidoresPersonalización masivaRe: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?¿Como esto?
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
For Each Row( If ( :Make == "Mazda", :HeadIC = :HeadIC/2 ));
(Y perdón por el formato, pero parece que nunca consigo que estos botones de "insertar script" funcionen...)
Re: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?En su ejemplo, dado que ha creado el vector con los números de fila, también puede usar "Para cada ()".Esto sería más rápido, especialmente para una tabla de datos más grande (con muchas filas).
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
Re: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?Por favor, desmitifica esto para mí:
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
// specifically, where do {cr,ii} come from and what do they do?
No es un codificador. No se pudo encontrar esto en el índice de secuencias de comandos. Todavía no he consultado la Guía de secuencias de comandos.
Re: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?Hola, no estoy seguro de cómo usar esa función, no puedo encontrarla en el índice de secuencias de comandos, ¿puede mostrar un ejemplo? Cuando trato de ejecutar el código que me diste, aparecen errores.
Re: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?For Each() es una nueva función introducida en JMP16, por lo que si está utilizando una versión anterior de JMP, no la encontrará en el índice de secuencias de comandos (y le dará un error). Podrías convertirlo a for-loop si quisieras:
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
/*For Each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);*/
For(ii = 1, ii <= N Items(r), ii++,
cr = r[ii];
:headic[cr] = :headic[cr]/2;
);
Para cada uno (nombres, contenedor, locales, cuerpo) (ayuda jmp16)
Re: ¿Cómo condiciono un bucle for para que funcione solo para un conjunto particular de filas?Eso es extraño. Ambos funcionan bien para mí. Vuelva a intentar publicar el código completo de cada solución en una ventana de secuencia de comandos independiente. Cierra todo lo demás. Ejecute primero el código desde una ventana de secuencia de comandos, confirmando que el código hace lo que se supone que debe hacer. Luego, cierre todo nuevamente excepto la otra ventana del script que contiene el código que aún necesita probar.