<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Soy completamente nuevo en las secuencias de comandos JMP.
Estoy tratando de crear un script que vaya a cada columna de caracteres en una tabla, encuentre todos sus valores (PASS, FAIL, etc.) y cree nuevas columnas con el sufijo "_CODED" usando valores asignados (1, 2, 3 , 4, 5) en base a las anteriores.
Aquí está el script que tengo ahora, que funciona, pero solo tiene en cuenta una sola columna. ¿Hay alguna manera de que pueda insertar una variable en lugar del nombre de esa columna para que se tengan en cuenta todas las columnas?
dt = Tabla de datos ("tabla de datos.jmp");
cols = dt << obtener nombres de columnas (Carácter); //Lista de todas las columnas de caracteres
For(i = 1, i <= N Elementos(columnas), i++,
dt << Nueva columna (columnas << obtener nombre || "_CODIFICADO",
Numérico,
"Nominal",
Formato ("Mejor", 12),
Fórmula(Nombre Expr(
If(:Nombre("Nivel1") == "APROBADO", 1, If(:Nombre("Nivel1") == "FALLO", 2, If(:Nombre("Nivel1") == "", 3, If(:Nombre("Nivel1") == "NO PROBADO", 4, If(:Nombre("Nivel1") == "IGNORAR", 5, If(:Nombre("Nivel1") == "APROBADO|APROBADO" , 6, If(:Nombre("Nivel1") == "IGNORAR|IGNORAR", 7, If(:Nombre("Nivel1") == "NO PROBADO|NO PROBADO", 8))))))))
))
);
);
Básicamente, me gustaría saber si hay una manera de hacer que el script se ejecute con cada columna de caracteres en una tabla en lugar de solo Nivel 1 . he tratado de usar columnas como una variable en lugar de Nivel 1 , pero esto provocó que la secuencia de comandos no se ejecutara porque se necesitaban comillas, o la secuencia de comandos buscaría una columna denominada "Nivel 1", que no es el objetivo.
Tomé fragmentos de otros scripts y traté de aplicarlos a este, así que por favor háganme saber si hay algo redundante. Muchas gracias.
¡Muchas gracias, funciona!
Esto lo hará:
Nueva tabla ( "Ejemplo" , Agregar filas ( 6 ) ,
Nueva columna ( "aaa" , Personaje , Nominal ,
Establecer valores ( { "PASAR" , "PASAR" , "FALLAR" , "PASAR POR ALTO" , "" , "PASAR POR ALTO" } )
) ,
Nueva columna ( "bbb" , Personaje , Nominal ,
Establecer valores ( { "APROBADO|APROBADO" , "IGNORAR|IGNORAR" , "PASAR" , "" , "FALLAR" , "FALLAR" } )
)
) ;
dt = Tabla de datos ( "Ejemplo" ) ;
columnas = dt << obtener nombres de columna ( Personaje ) ; //Lista de todas las columnas de caracteres
Para ( i = 1 , i <= N artículos ( columnas ) , i ++,
una_col = columnas [ i ] << obtener nombre ;
codificado_col = una_col || "_CODIFICADO" ;
col_expr = Evalinsert (
"\[ dt << Nueva columna("^codificada_col^", Numérico, "Nominal",
Formato ("Mejor", 12), Fórmula (
if (:nombre("^una_columna^") == "APROBADO", 1,
:nombre("^una_columna^") == "FALLO", 2,
:nombre("^una_columna^") == "", 3,
:nombre("^una_columna^") == "NO PROBADO", 4,
:nombre("^una_columna^") == "IGNORAR", 5,
:nombre("^una_columna^") == "APROBADO|APROBADO", 6,
:nombre("^una_columna^") == "IGNORAR|IGNORAR", 7,
:Nombre("^one_col^") == "NO PROBADO|NO PROBADO", 8;
);
)
);]\" ) ;
evaluar ( analizar gramaticalmente ( col_expr ))
) ;