Loop para nombres de columnas no funciona<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Soy novato en JSL. Intento hacer una prueba de Wilcoxon para un rango de columnas. Mi primera columna es "ID" y la segunda es "SEXO", que utilicé como parámetro.
Entonces, escribí el siguiente código para hacer análisis y exportar resultados a una revista:
dt = Tabla de datos actuales ();
column_names = dt << Get Column Names;
para (i = 3, i <= longitud (nombres de columna), i ++,
ow = ow || "
De una sola mano(
Y (: Nombre ("|| column_names || ")),
X (: SEXO),
Prueba de Wilcoxon (1)
Caja de parcelas (0),
Diamantes medios (0)
); "
);
eval (parse (ow)) << Journal ();
Pero no funciona y no sé qué está mal con el código.
También tengo otra pregunta: "¿Es posible exportar solo el valor P a una revista? Usé SendToReport (envío ... ) pero todavía hay títulos de sección en los resultados. Lo que necesito es solo el nombre de mi columna y el valor de P. Es posible ?"
Por favor, ayúdame.
Gracias por adelantado
Re: Loop para nombres de columna no funcionaQuerido Dave,
Gracias por su respuesta rápida y detallada.
Trabajo con JMP8 y parece que la estructura es un poco diferente. En mi versión "NumberColBox (7)" se refiere al valor de p.
También aprecio su consejo sobre cómo ver la estructura del árbol. Es de gran ayuda.
Buena suerte
Re: Loop para nombres de columna no funcionaEste es el aspecto que debería tener la salida para el segundo script:

¿Qué versión de JMP estás usando? Lo he ejecutado con éxito en v9 y v10.
También eche un vistazo al archivo de registro para ver si recibe algún mensaje de error.
Los valores de p se extraen haciendo referencia al cuadro de visualización apropiado en la estructura de árbol del informe utilizando la siguiente línea de código:
matPValue = owr [NumberColBox (11)] ;
El nombre del cuadro de visualización, NumberColBox (11), se identifica al observar la estructura del árbol ... así que puedes intentar esto para verificar que el nombre del cuadro de visualización sea correcto:
después de la línea:
owr = ow << reporte;
añadir:
owr << mostrar estructura de árbol;
Lo que dará salida a algo como esto:

-Dave
Re: Loop para nombres de columna no funcionaQuerido Dave,
Muchas gracias por tu ayuda. Realmente me salvó el tiempo.
Sin embargo, cuando probé la segunda secuencia de comandos, no obtuve respuesta, así que cambié la propiedad de la tabla de resultados a "visible" y descubrí que, aunque había creado el número correcto de filas correspondientes al número de columnas que debía analizar, no se había inyectado ningún dato. tabla de resultados.
Aprecio si me das una pista de cómo resolverlo.
Gracias de antemano por sus valiosas ayudas.
Re: Loop para nombres de columna no funcionaPrueba esto:
dt = Abrir ("$ SAMPLE_DATA / Big Class.jmp");
column_names = dt << Get Column Names (numeric, String);
jw = Nueva ventana ("demo", << diario);
para (i = 1, i <= NItems (column_names), i ++,
colName = column_names ;
cmd = Expr (
ow = Oneway (
Y (cName),
X (: SEXO),
Prueba de Wilcoxon (1)
Caja de parcelas (0),
Diamantes medios (0);
);
owr = ow << reporte;
owr << Cuadro de esquema (1) << Cerrar;
pValues = owr [TableBox (3)];
jw << Añadir (ob = Cuadro de esquema (colName));
ob << Añadir (pValues);
ob << Append (owr);
ow << Cerrar ventana;
);
Sustituya Into (cmd, Expr (cName), colName);
Eval (cmd);
);
o si solo quieres el nombre de la columna y el valor p ...
dt = Abrir ("$ SAMPLE_DATA / Big Class.jmp");
column_names = dt << Get Column Names (numeric, String);
resultados = Nueva tabla ("Resultados", invisible,
Nueva columna ("Nombre", carácter),
Nueva columna ("Valor P", numérica),
Agregar filas (artículos (nombres de columna))
);
para (i = 1, i <= NItems (column_names), i ++,
colName = column_names ;
cmd = Expr (
ow = dt << Oneway (
Y (cName),
X (: SEXO),
Prueba de Wilcoxon (1)
Caja de parcelas (0),
Diamantes medios (0);
);
owr = ow << reporte;
matPValue = owr [NumberColBox (11)];
pValue = matPValue [1];
Columna (resultados, 1) = colName;
Columna (resultados, 2) = pValue;
ow << Cerrar ventana;
);
Sustituya Into (cmd, Expr (cName), colName);
Eval (cmd);
);
resultados << revista;
Cerrar (resultados);
-Dave