Resumir función con múltiples por columnasTodo,
Estoy tratando de escribir un script que obtenga un recuento de observaciones, potencialmente por 1 o más columnas (según lo determinado por la entrada del usuario). Puedo hacer que el script funcione para una columna, pero no para dos o más. ¿Cómo ajusto el código paso a paso de la función de resumen para manejar más de 1 columna?
A continuación se muestra un ejemplo de script:
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
¡Gracias!
Sara
Re: Resumir función con múltiples por columnasPerdón por la confusión sobre la variable varname. Lo tienes bien: es una lista de nombres de columnas que dependen de la entrada del usuario desde una GUI (esa es varList, un cuadro de lista de columnas). Y has solucionado mi problema. Me encanta cuando es una solución simple.
Entonces, para mi conocimiento futuro, cada vez que quiera hacer referencia a los nombres de las columnas de la tabla de datos en una función en JSL, ¿las cosas deberían funcionar bien con el comando eval() a su alrededor? Parece que siempre tengo problemas con eso, especialmente cuando codifico gráficos.
¡Muchas gracias!
Sara
Re: Resumir función con múltiples por columnasNo hay suficiente información en su publicación para estar seguro de saber cuál es el problema. Sería útil saber qué es VarList y cuál es el resultado del mensaje <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
Si es así, entonces necesita usar Eval() alrededor de varname en la función Summarize(), así:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>