¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnasHola,
Tengo un problema extraño en JMP que parece que no puedo explicar. En mi tabla estoy comparando valores en dos columnas. La columna "A" es simplemente una columna numérica continua simple con valores enteros que van del 0 al 100. La columna "B" es otra columna numérica continua simple con números que van del 0 al 1, todos con una precisión de hasta dos decimales. Luego creo una columna "C" para comparar directamente "A" y "B" estableciendo una fórmula en "C": B*100. Sin embargo, cuando comparo las columnas "A" y "C", en algunos casos, A y C son iguales, pero JMP dice que no lo son. Esta debería ser una comparación simple, pero por alguna razón, ciertos números no son comparables. Cambiar la columna "C" a carácter y luego volver a numérico soluciona este problema, pero siento que realmente no debería tener que hacer esto... ¿Alguien puede explicar el problema subyacente?
He adjuntado un conjunto de datos de ejemplo que enumera todos los números posibles. Puede ver que el problema surge en las filas 7, 14, 28, 29, 55, 56, 57 y 58.
Apreciaría cualquier idea aquí.
Gracias,
Toronjil
Re: ¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnasAh, sí, tienes razón. ¡Muchas gracias!
Re: ¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnasEl problema es con los números de coma flotante/binarios.No todos los números se pueden guardar exactamente como entrada exacta.Ese es uno de los hechos a largo plazo con las computadoras.Y JMP almacena sus datos numéricos en esta fórmula, y luego, al mostrarlos, los corrige de nuevo al valor corregido.Este es un problema con casi todos los sistemas que realizan análisis numérico.
Si no recuerdo mal... muy atrás, creo que el número 3 no se puede almacenar, y en realidad se almacena como algo así como 2.9999999999998.Podría estar equivocado con el número 3, pero espero que entiendas la idea.
Re: ¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnas@melissacch ,
En lugar de copiar los datos o ingresarlos manualmente, ¿podría intentar crear un script en su tabla?
Aquí hay un ejemplo. No puedo encontrar una manera fácil de generar una serie de decimales. Pero si tuviera que hacer algo como esto, creo que evitaría el problema del redondeo.
dt = New Table();
Set1 = Index(1,100);
Set2 = Index(0.01,1); // This doesn't work
dt << New Column("A",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set1))
<< New Column("B",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set2))// Will Fail
<< New Column("B*100",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:B*100))
<< New Column("Check1",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:A == :Name("B*100")));Re: ¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnasHola @uday_guntupalli
Muchas gracias por la respuesta. Debería haber mirado la diferencia y visto que era un problema de redondeo. Sin embargo, ¿alguna idea de por qué JMP está generando estas minúsculas diferencias? Ingresé manualmente estos números, por lo que no debería haber más decimales/precisión.
Re: ¿Problema de tipo de datos de fórmula? - Salida incorrecta al comparar dos columnas@melissacch ,
Es un problema de error de redondeo. Si ve la tabla de datos que adjunté, incluí una nueva columna donde se calcula la diferencia entre ambas columnas. Hay un valor minúsculo, es por eso que JMP devuelve desigual.
Espero que esto ayude