¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Hola a todos,
Estoy tratando de generar una nueva columna para que sea una columna media de: A por grupos especificados por: B,: C,: D.
¿Hay alguna manera de hacer esto donde :B, :C,
es una lista? Me gustaría esto para poder llenarlo usando Col Dialog.
Si no, ¿hay alguna manera de dividir la lista en argumentos?
La primera línea a continuación me da las medias deseadas mientras que la segunda línea me da la media general de :A.
media= Nueva Columna("Media", Formula(Columna Media(:A, :B, :C,
)));
media = Nueva Columna("Media", Formula(Columna Media(:A, {:B, :C,
})));
Gracias de antemano.
secuencias de comandosRe: ¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Gracias a todos, esto me llevó en la dirección correcta.
Sigo aprendiendo sobre expresiones y evaluaciones, gracias por el ejemplo.
Re: ¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Por supuesto que lo hay.@jthi muestra una forma de manejarlo, convirtiendo los elementos de la lista que obtendrá de su cuadro de diálogo en expresiones.O, dado que JSL es un lenguaje de programación, le brinda todas las estructuras que necesita para resolver el problema.Dado que es un poco nuevo en JSL, le sugiero que eche un vistazo a la Guía de secuencias de comandos.Es la mejor manera de aprender sobre las estructuras y características de JSL.La Guía de secuencias de comandos está disponible en la Biblioteca de documentación de JMP en el menú desplegable Ayuda.
Aquí hay otra forma de manejar el problema, que debería darle lo que quiere
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = {"height", "Sex", "Age"};
__vals__ = Concat Items( colList, "," );
Eval(
Parse(
Eval Insert(
"dt << New Column( \!"Mean\!",
formula( Col Mean( ^__vals__^) )
)
;"
)
)
);
Re: ¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Gracias Jim, ¿habría alguna manera de hacer esto si el tamaño de la lista no estuviera determinado?
Re: ¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Si coloca columnas en una lista con formato: nombre, también puede usar esta opción (idea de Usar lista de columnas en fórmulas )
Names Default To Here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open("$SAMPLE_DATA/big class.jmp");
col_list = {:height, :Sex, :Age};
formula_expr = Name Expr(Substitute(col_list, Expr(List()), Expr(Col Mean())));
Eval(EvalExpr(
dt << New Column("Mean", Formula(Expr(formula_expr)));
));
Para usar Eval, Eval Expr, Expr, Substitute... ver Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute
Re: ¿Hay alguna forma de ingresar una lista de columnas por variables de grupo en la columna media/desv estándar/mediana?Aquí hay una manera fácil de resolver esto
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = {"height", "Sex", "Age"};
Eval(
Substitute(
Expr(
dt << New Column( "Mean",
formula( Col Mean( __one__, __two__, __three__ ) )
)
),
Expr( __one__ ), Parse( ":" || colList[1] ),
Expr( __two__ ), Parse( ":" || colList[2] ),
Expr( __three__ ), Parse( ":" || colList[3] )
)
);