Convertir al número entero más cercano - Sin redondeoHola.
Siendo nuevo en JMP, estoy seguro de que este es un error típico de principiante.
Necesito convertir un número decimal a un número entero sin redondear.
Ejemplo 1: el valor 0,5986 se copia de la columna 1 y se guarda en la columna 2. 0 debe guardarse en la columna 2. En cambio, 1 se está guardando.
Ejemplo 2: el valor 1,5986 se copia de la columna 1 y se guarda en la columna 2. 1 debe guardarse en la columna 2. En cambio, 2 se está guardando.
Intenté usar Round(x, 0), pero el número siempre se redondea hacia arriba.
También intenté formatear el valor de la columna 1 y volver a convertirlo en un número (falla).
Column1 se define:
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
Column2 se define:
New Column( "WholeSeconds",
Numeric,
Continuous,
Format( Fixed Dec, 5, 0),
);
Código:
For Each Row(
lvTime = dt:Time;
dt:WholeSeconds = Round( lvTime,0);
);
Cualquier ayuda es muy apreciada.
Gracias.
Organización de contenidoAcceso a los datosFusión y limpieza de datosLa personalización en masaIngeniería de Calidad y ProcesosCompartir y comunicar resultadosRe: Convertir al número entero más cercano - Sin redondeoEstimado @swanthog , en un script probé tres métodos diferentes para calcular un cuadrado y = x*x en una tabla con diferente número de filas.
El resultado es,
- que el bucle lleva diez veces más tiempo
- como la operación de la tabla
- y el cálculo de la matriz es 5 veces más rápido que la operación de la tabla
También en términos de código limpio y menos errores, en mi opinión, es una buena recomendación para evitar bucles, si hay otros métodos (tabla y matriz), que tienen una funcionalidad integrada para abordar cada elemento.
Pero para guiones pequeños, y si el rendimiento no es un problema, los bucles también están bien. También cuenta la legibilidad (a los ojos del escritor).

Re: Convertir al número entero más cercano - Sin redondeoGracias, Georg y txnelson.
También aprecio la sugerencia de resolución de nombres. Todavía no lo había encontrado en la documentación.
Supongo que la recomendación para evitar bucles se debe al impacto negativo en el rendimiento. ¿Está bien? ¿Cuál es (más o menos) el impacto/la diferencia en el rendimiento usando fórmulas de bucles frente a tablas?
¡Gracias!
Lorenzo
Re: Convertir al número entero más cercano - Sin redondeoAdemás de @txnelson , aquí está el código para ello:
Como puede ver, puede usar una fórmula o valores escritos en esa columna.
Es mejor evitar los bucles (para cada fila), si las tablas pueden prescindir de ellos, si es posible.
Names Default To Here( 1 );
cdt = New Table( "Example Floor",
add rows( 2 ),
New Column( "Time", Numeric, Continuous, Format( Best, 12 ), set values( [0.5986, 1.5986] ) ),
New Column( "WholeSeconds_formula", Numeric, Continuous, Format( Best, 12 ), Formula( Floor( :Time ) ) ),
New Column( "WholeSeconds_value", Numeric, Continuous, Format( Best, 12 ), set each value( Floor( :Time ) ) )
);

Re: Convertir al número entero más cercano - Sin redondeoPuede usar las funciones Floor() y Ceiling().