Re: Las funciones estadísticas (Col Mean, por ejemplo) posiblemente fallaron en la primera fila de la tabla de datos al usar << Establecer cada valor para reemplazar los valores en la columnaEsto debe ir al soporte técnico de JMP
Re: Funciones estadísticas (Col Mean, por ejemplo) posiblemente tengan errores en la primera fila de la tabla de datos cuando se usa << Establecer cada valor para reemplazar valores en la columnaDespués de agregar algún formato adicional a la impresión de valores , la agregación de Col... cambia al modo muy lento que ya se conoce aquí:
¿Cómo puedo utilizar la fórmula de columna máxima con un "donde"?/mp/578576/highlight/true#M78599
newCol=New Column("new");
newCol << Set Each Value(Col Mean(write("-value, row # ",row(),"\!n");:Vals, write("groupby row # ",row()," ",newCol[row()],"\!n");:A));
Parece que para cada fila individual
- se evalúan todas las filas : primero el valor y luego el argumento GroupBy
- luego se evalúa el argumento GroupBy de la fila específica (nuevamente)
y luego se recogen y agregan los valores coincidentes.
Luego comienza con la siguiente fila:
- se evalúan todas las filas (nuevamente): primero el valor y luego el argumento GroupBy
- luego se evalúa (nuevamente) el argumento GroupBy de la siguiente fila
y así sucesivamente....
Esto explica por qué la ejecución se escala cuadráticamente con la longitud de las filas, [compare ¿Cómo-uso-la-fórmula-de-columna-máxima .... ]
Gracioso: Las evaluaciones adicionales son diferentes a la luna: no están allí si no las miras
Quizás alguien de Jmp podría dar una visión más detallada...
Impresión completa de la versión lenta:
Ver más...-value, row # 1
groupby row # 1 .
-value, row # 2
groupby row # 2 .
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 1 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 .
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 2 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 .
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 3 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 .
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 4 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 .
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 5 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 .
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 6 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 2.5
-value, row # 7
groupby row # 7 .
-value, row # 8
groupby row # 8 .
groupby row # 7 .
-value, row # 1
groupby row # 1 2.5
-value, row # 2
groupby row # 2 2.5
-value, row # 3
groupby row # 3 2.5
-value, row # 4
groupby row # 4 2.5
-value, row # 5
groupby row # 5 2.5
-value, row # 6
groupby row # 6 2.5
-value, row # 7
groupby row # 7 2.5
-value, row # 8
groupby row # 8 .
groupby row # 8 .
Re: Las funciones estadísticas (Col Mean, por ejemplo) posiblemente fallaron en la primera fila de la tabla de datos al usar << Establecer cada valor para reemplazar los valores en la columnaEstoy un poco ansioso cuando uso la misma columna al mismo tiempo como entrada y salida de un cálculo.
Caso extremo: Si color... La agregación simplemente actuó fila por fila como Lag (), la salida sería como una oruga que se mueve a lo largo de las filas, fila por fila cambiando la salida de agregación.
En cuanto a la velocidad, es genial que Columna ... la agregación lo hace mucho mejor.
Con respecto a la prevención del problema: idea inteligente para agregar una fila temporal de repuesto. Alternativamente, uno podría usar una columna temporal para almacenar los valores, ¿verdad?
Sobre: ¿Por qué?
[editado después de la entrada de la versión lenta]
mmm...
Agregar una función de impresión al argumento GroupBy ayuda a ver qué está pasando...
De hecho, el Valor y Agrupar por Las funciones se evalúan dos veces.
Primero para obtener valores para comparar con el argumento GroupBy de la fila 1, luego nuevamente después de escribir el resultado en la fila 1.
newCol=New Column("new");
newCol << Set Each Value(Col Mean(Print(row());:Vals,<BR /> write("\!n groupby row # ",row()," ",newCol[row()],"\!n");:A));
una línea con solo un número: cuál valor se evaluó la función?
una línea con agrupar por fila # ... : cual Agrupar por se evaluó la función?
1
groupby row # 1 .
2
groupby row # 2 .
3
groupby row # 3 .
4
groupby row # 4 .
5
groupby row # 5 .
6
groupby row # 6 .
7
groupby row # 7 .
8
groupby row # 8 .
groupby row # 1 .
1
groupby row # 1 2.5
2
groupby row # 2 .
3
groupby row # 3 .
4
groupby row # 4 .
5
groupby row # 5 .
6
groupby row # 6 .
7
groupby row # 7 .
8
groupby row # 8 .
groupby row # 2 .
groupby row # 3 .
groupby row # 4 .
groupby row # 5 .
groupby row # 6 .
groupby row # 7 .
groupby row # 8 .
Re: Las funciones estadísticas (Col Mean, por ejemplo) posiblemente fallaron en la primera fila de la tabla de datos al usar << Establecer cada valor para reemplazar los valores en la columnaTiene (TS-00036082) y el soporte lo envió al desarrollo de JMP. El propósito de esta publicación era solo hacer esto un poco más visible.
Editar: como acepté esto como una solución, agregaré una posible solución que pareció funcionar: agregue una fila adicional a su tabla de datos como primera fila, use << establezca cada valor para actualizar los valores y luego elimine esa fila vacía adicional
// workaround
dt << Add Row(1, At Start);
Column(dt, "Column 1 1") << Set Each Value(Col Mean(:Column 1 1, :A));
dt << Delete Rows(1);
El error estaba presente para mí para JMP16.2 y JMP17.0
Las funciones estadísticas (Col Mean, por ejemplo) posiblemente presenten errores en la primera fila de la tabla de datos cuando se usa << Establecer cada valor para reemplazar valores en la columnaMientras intentaba que mi solución funcionara para ¿Existe una forma más rápida de realizar un bucle?, me encontré con un problema en el que la primera fila de mis datos no se veía correcta (de hecho, el problema se refería a todo el primer grupo).
Names Default To Here(1);
dt = New Table("Untitled 5",
Add Rows(8),
Compress File When Saved(1),
New Column("Vals", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 1 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 1, 2, 3, 4])),
New Column("A", Character, "Nominal", Set Values({"A", "A", "A", "A", "B", "B", "B", "B"})),
New Column("B", Character, "Nominal", Formula(Col Mean(:Vals, :A)))
);
dt << New Column("Column 3", Numeric, Continuous, <<SET each="" value=""></SET>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="jthi_1-1678901605470.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/51122iF900862836EE33DB/jthi_1-1678901605470.png" role="button" title="jthi_1-1678901605470.png" alt="jthi_1-1678901605470.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<P>A mí me parece que la media de la columna se calcula en la primera fila y luego la media del resto del <STRONG>grupo</STRONG> se calcula utilizando este valor ya reemplazado. Hay una solución alternativa en la que puedes agregar una fila vacía como primera en la tabla de datos -> usar << establecer cada valor -> eliminar esa primera fila.</P>
<P> </P>
<P>Ya abrí un ticket sobre este problema (TS-00036082) y el soporte de JMP envió un informe de error al equipo de desarrollo, pero quería hacerlo más visible. Es posible que deba verificar algunos de mis scripts más antiguos para comprobar que no haya lugares donde use << Set Each Value() para reemplazar valores existentes (normalmente lo uso durante la creación de columnas) al usar funciones de columnas estadísticas.</P><LINGO-LABS id="lingo-labs-613593" slang="en-US" mode="UPDATE"><LINGO-LABEL>Ingeniería de Calidad y Procesos</LINGO-LABEL></LINGO-LABS>Re: Funciones estadísticas (Col Mean, por ejemplo) posiblemente tengan errores en la primera fila de la tabla de datos cuando se usa << Establecer cada valor para reemplazar valores en la columna
@hogi escribió:
Después de agregar algún formato adicional a la impresión de valores , la agregación de Col... cambia al modo muy lento que ya se conoce aquí:
¿Cómo puedo utilizar la fórmula de columna máxima con un "donde"?/mp/578576/highlight/true#M78599
Acabo de comprobar el comportamiento con Jmp 17.2 y versiones posteriores (<=18.1.1). El problema ha desaparecido:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Clear Select << Select Rows( Index( 5, 40 ) ) <<DELETE rows=""></DELETE>
gives:
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1734384257364.png" style="width: 174px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_0-1734384257364.png" style="width: 174px;"><img src="https://us.v-cdn.net/6038925/uploads/images/71281i524773A5E5A75986/hogi_0-1734384257364.png" width="174" height="408" role="button" title="hogi_0-1734384257364.png" alt="hogi_0-1734384257364.png" /></span></SPAN>
so, the value and GroupBy values are calculated for every row - then the GroupBy values are calculated again for every row.<BR />That's it.