Problema de secuencia de comandos: los nombres de las variables no se pasan dinámicamente a las declaraciones de evaluación condicional<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Tengo algunos problemas para redactar un guión que me ahorrará horas de tiempo con algunos análisis del DOE que estamos haciendo regularmente.
Esto es lo que quiero que haga el script:
1) Cree una nueva variable para cada variable original en el comando cc = {Variables} que puede encontrar en el script. ESTO FUNCIONA BIEN.
2) Para cada nueva variable creada, quiero adjuntar una declaración condicional que evaluará si los datos contenidos en la variable original están por encima de algún valor de umbral.
Siento que me estoy acercando, el problema es que dentro de la declaración condicional, el nombre real de la variable en el comando cc no se pasa correctamente. Por lo tanto, mi script falla.
Si pudiera ser tan amable, me gustaría entender mejor qué es lo que está mal aquí. Para ayudar, he adjuntado algunos datos simulados y el script actual en el que estoy trabajando.
Además, solo quiero asegurarme de que dentro de un script está bien pasar múltiples declaraciones condicionales a múltiples variables.
Muchas gracias por cualquier ayuda para ayudarme a aprender de este problema.
Guión (también adjunto, así como datos)
discos compactos = Tabla de datos actual () ;
// Nombres de columna especificados por el usuario
CC = { URL de C1 , URL de C2 , URL de C3 } ;
Para ( i = 1 , i <= N artículos ( CC ) , i ++,
Nueva columna ( Carbonizarse ( CC [ i ]) || "5e3" , Numérico , fórmula ( SI ( CC [ i ] > 5000 , 1 , 0 ))) ;
( Nueva columna ( Carbonizarse ( CC [ i ]) || "1e4" , Numérico )) ; 10000 // si el primer condicional funcionara, se crearía un segundo aquí por 10000
( Nueva columna ( Carbonizarse ( CC [ i ]) || "2e4" , Numérico ))) ; 20000 // otro condicional aquí para 20000
Re: Problema de secuencia de comandos: los nombres de las variables no se pasan dinámicamente a las declaraciones de evaluación condicionalSolo quiero agradecerles mucho a ambos por su ayuda. Esto lo arregló, pero lo que es más importante, sabré cómo resolver este tipo de problema en una fecha posterior.
Muy apreciado.
Re: Problema de secuencia de comandos: los nombres de las variables no se pasan dinámicamente a las declaraciones de evaluación condicionalmarcelobailey La respuesta de es buena.
Si aún desea columnas con fórmulas, el truco es recordar que JMP asume que la fórmula debe evaluarse en la columna, no en el momento de la ejecución del script. Como resultado, pone cc[1] en la fórmula en lugar de la columna de referencia. Debe sustituir la referencia de la columna antes de evaluar la Nueva columna ().
cd = Current Data Table();
// User specified column names
cc = {C1 RLU, C2 RLU, C3 RLU};
For( i = 1, i <= N Items( cc ), i++,
Eval(
Substitute(
Expr(
New Column( Char( cc[i] ) || "5e3", Numeric, formula( col > 5000 ) );
New Column( Char( cc[i] ) || "1e4", Numeric, formula( col > 10000 ) );
New Column( Char( cc[i] ) || "2e4", Numeric, formula( col > 20000 ) );
),
expr(col), cc[1]
)
);
);
-Jeff
Re: Problema de secuencia de comandos: los nombres de las variables no se pasan dinámicamente a las declaraciones de evaluación condicionalPrueba este guión:
discos compactos = Tabla de datos actual () ;
// Nombres de columna especificados por el usuario
CC = { URL de C1 , URL de C2 , URL de C3 } ;
Para ( i = 1 , i <= N artículos ( CC ) , i ++,
discos compactos << Nueva columna ( Carbonizarse ( CC [ i ] ) || "5e3" ,
Numérico ,
Valores (
Local ( { datos } ,
datos = CC [ i ] << Obtener como matriz ;
datos > 5000
)
)
) ;
discos compactos << Nueva columna ( Carbonizarse ( CC [ i ] ) || "1e4" ,
Numérico ,
Valores (
Local ( { datos } ,
datos = CC [ i ] << Obtener como matriz ;
datos > 10000
)
)
) ;
discos compactos << Nueva columna ( Carbonizarse ( CC [ i ] ) || "2e4" ,
Numérico ,
Valores (
Local ( { datos } ,
datos = CC [ i ] << Obtener como matriz ;
datos > 20000
)
)
) ;
) ;