Error del ciclo de dependencia de la fórmula de la columnaHola a todos,
Sólo me pregunto cómo podemos hacer referencias circulares en JSL. Por ejemplo, tengo una cantidad de población y una tasa de fracaso. Pero la tasa de fracaso de cada año depende de la supervivencia. partes.
Año Equipo original fallido Sobrevivir
1 100 1 99
2 99 2 97
3 97 3 94
Sé que JMP no permite que una columna tenga una fórmula que dependa de la otra columna formulada. ¿Existe algún truco que pueda solucionarse en este caso?
Gracias
Gracias
Automatización y secuencias de comandosRe: Error de ciclo de dependencia de fórmula de columnaPuede tener columnas de fórmula en JMP que utilicen otras columnas de fórmula.

¿Cómo introduciría nuevos datos en su caso? ¿Qué columnas se deben calcular y en función de qué columnas?
Re: Error de ciclo de dependencia de fórmula de columnaGracias por tu sugerencia. Así es como lo configuraría, pero solo se repite durante 2 filas y tomaría mucho tiempo solo para esa fila.
New Table( "test",
Add Rows( 7 ),
New Column ("Year", Set Values ([1,2,3,4,5,6,7])),
New Column ("Failure Rate", Set Values ([0.1,0.1,0.15,0.2,0.25,0.3,0.35])),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", formula (:Failure Rate *:original) ),
New Column( "Survive", formula (:original - :failed ))
);
Wait( 2 );
For Each Row(
If( Row() != 1,
:original = Lag( :Survive )
)
);
Re: Error de ciclo de dependencia de fórmula de columnaCalcule la nueva columna Original y úsela para sus cálculos
Names Default To Here(1);
dt = New Table("test",
Add Rows(7),
New Column("Year", Set Values([1, 2, 3, 4, 5, 6, 7])),
New Column("Failure Rate", Set Values([0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35])),
New Column("original", Set Values([100, ., ., ., ., ., .])),
New Column("failed", formula(:Failure Rate * :original)),
New Column("Survive", formula(:original - :failed))
);
dt << New Column("OriginalF", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:OriginalF) - Lag(:OriginalF) * Lag(:Failure Rate)
);
));
dt << New Column("FailedF", Numeric, Continuous, Formula(
:OriginalF * :Failure Rate;
));
dt << New Column("SurviveF", Numeric, Continuous, Formula(
:OriginalF - :FailedF
));

Re: Error de ciclo de dependencia de fórmula de columna jthi.Ésa es una forma muy inteligente de romper el ciclo de referencia.
Re: Error de ciclo de dependencia de fórmula de columna@jthi escribió:
Calcule la nueva columna Original y úsela para sus cálculos
y luego: vuelva a los nombres de columnas anteriores.
Entonces, el truco es: no uses "fallos" para calcular los valores originales 
Names Default To Here(1);
New Table( "test",
Add Rows( 7 ),
New Table Variable( "original", 100 ),
New Column( "Year", Numeric, "Continuous", Format( "Best", 10 ), Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
)
);
New Column("Original", Numeric, Continuous, Formula(
If(Row() == 1,
:original
,
Lag(:Original) - Lag(:Original) * Lag(:Failure Rate)
);
));
New Column("Failed", Numeric, Continuous, Formula(
:Original * :Failure Rate;
));
New Column("Survive", Numeric, Continuous, Formula(
:Original - :Failed
));
Re: Error de ciclo de dependencia de fórmula de columnagracioso, como un auto viejo 
Es bueno que comience después del segundo intento.
¿Lo mismo de tu lado?
New Table( "test",
Add Rows( 7 ),
New Column( "Year", Set Values( [1, 2, 3, 4, 5, 6, 7] ) ),
New Column( "Failure Rate",
Set Values( [0.1, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35] )
),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed" ),
New Column( "survive" )
);
start = Function( {},
:survive << set formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:failed = :Failure Rate * :original;
:original - :failed;
)
);
start();
start();
Re: Error de ciclo de dependencia de fórmula de columnaCon la cantidad original y los valores fallidos, puede completar todos los valores. (*)
Por lo tanto, podría configurar un script que se active cada vez que se ingresa un valor.
Tienes que hacer clic una vez en **)

... entonces todo estará bien:
Si se agregan filas o se cambia un valor de entrada (*), la tabla se actualiza; todos los demás cambios se ignorarán.
New Table( "test",
Add Rows( 7 ),
New Column( "original", Set Values( [100, ., ., ., ., ., .] ) ),
New Column( "failed", Set Values( [1, 2, 3, 5, 32, 2, 6] ) ),
New Column( "Survive" )
);
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
Wait( 0 );
:survive << set Formula(
If( Row() != 1,
:original = Lag( :Survive )
);
:original - :failed;
);
editar:
Mm, no sé la diferencia con la última vez, pero ahora la actualización automática no funciona en primer lugar.
--> así que actívalo dos veces;)
[Espero que mañana no necesite 3 pruebas...]
editar:
innecesario Por cada fila remoto.
**)
- ¿Alguna idea de cómo deshacerse de este mensaje? ->
- alguna idea de por qué lo último: sobrevivir falta la entrada [al menos esto está mejor hoy: ya no falta :]
- ¿Alguna idea de por qué hoy necesito el comando de fórmula 2x?