Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tablaHola,
Estoy usando JMP versión 16.
Estoy transfiriendo datos de una tabla de referencias cruzadas. Le he pedido que redondee a 3 decimales. Luego, guarda los datos en una cadena, que se usará para imprimir los resultados en una tabla. Vea el código a continuación.
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
meandiff = Round( crossTab[1, 2] , 3 );
lowerCL = Round( crossTab[3, 2] , 3 );
upperCL = Round( crossTab[4, 2] , 3 );<BR /><BR /> // Create the Difference in mean and CL string<BR />Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || " ; " || Char( upperCL ) || "]" );
Tengo dos preguntas sobre el informe:
1. ¿Por qué, por ejemplo, informa 0,019 como 0,02 en lugar de 0,020 cuando se especifica que se informen 3 decimales?
2. Esto solía funcionar, pero ahora no: toma el valor 0,0015 y lo redondea a 0,001 en lugar de 0,002. ¿Sabes por qué ocurre esto y cómo solucionarlo? Quiero que mantenga las reglas de redondeo normales (4 o menos se redondea hacia abajo y 5 o más se redondea hacia arriba).
Análisis y modelado de datos básicosRe: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tabla1. Creo que si deseas tener esos ceros adicionales en JMP, debes especificar el formato y convertirlo a cadena.
Format(1.100, "Fixed Dec", 10, 3)
2. ¿Estás seguro de que estás redondeando 0,0015 y no otro valor? ¿Cuál es el valor real en la matriz que tienes? Incluso si la plataforma muestra 0,0015, es probable que el valor sea más preciso en la realidad, como 0,00149, que se redondearía a 0,0015.
Re: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tablaHola Jarmo,
¡Gracias por la respuesta!
1. Voy a probar esto, gracias.
2. Debe ir a la tabla cruzada y tomar de la segunda columna, fila 1, fila 3 y fila 4 (Media[i]-Media[j], Dif. CL Inferior y Dif. CL Superior).
Por favor vea la imagen a continuación.

La diferencia media se imprime con esta línea
meandiff = Round( crossTab[1, 2] , 3 );
Debería redondearse a tres decimales y según las reglas habituales. Simplemente no se redondeó correctamente y no entiendo qué falla.
Re: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tabla¿Has comprobado los valores reales? Los valores que ves en el informe de JMP probablemente ya estén redondeados. Esto se hace en JMP18.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Drug.jmp");
obj = Fit Model(
Y(:y),
Effects(:Drug, :x),
Personality(Standard Least Squares),
Emphasis(Effect Leverage),
<< Run(:Drug << {LSMeans Student's t(.05, Ordered Differences Report(1))})
);
m = Report(obj)["Response y","Drug","LSMeans Differences Student's t",CrosstabBox(1)] << get as matrix;
show(m);

Re: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tablaNo pude lograr que ejecutara la siguiente línea
m = Report(obj)[ :Result , :Person , "LSMeans Differences Student's t" , CrosstabBox(1)] << get as matrix;
Así que, en lugar de eso, abrí el informe de diferencias ordenadas. Aquí puedo ver que la diferencia total es de 0,0015000; por lo tanto, no está redondeada dos veces.

Re: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tablaYa tenías el script para tu caso para extraer la matriz
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
Simplemente verifique los valores imprimiendo la tabla cruzada
Re: Redondeo incorrecto al transferir de una tabla de referencias cruzadas a una nueva tabla¡Ah, gracias! Ya saqué los resultados y puedo ver que es porque cuando se redondea a 2 decimales en lugar de 3, se redondea de forma diferente.
tabla cruzada = [0 0.00149999999999987, 0 0.000298142396959379, 0 0.000835697341910363, 0 0.00216430265808938, -0,00149999999999987 0, 0,000298142396959379 0, -0,00216430265808938 0, -0,000835697341910363 0];
Muchas gracias por tu ayuda.:)