Hola,
Estoy recorriendo columnas para crear nuevas columnas de medias, desarrollo estándar y CV para cada columna. Tengo el siguiente script, que funciona bien para las estadísticas de columnas globales, pero cuando intento agregar por grupos, como lo hice en la columna media, la fórmula falla.
Me doy cuenta de que podría lograr lo mismo usando una tabla de resumen actualizada en la tabla principal.
¡Gracias!
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp");
New Column("Old",
Character,
Formula(If(:age>=14,"Old","Young"))
);
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula(
Col Mean(Column(__colname__),:old)
)
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula(
Col Std Dev(Column(__colname__))
)
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula(
Col Std Dev(Column(__colname__))/
Col Mean(Column(__colname__))
)
);
),
Expr(__colname__),colnames[i]
)
)
);JMP parece tener problemas al usar solo la función Column().Sin embargo, la función Como columna() corrige el problema.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Old", Character, Formula( If( :age >= 14, "Old", "Young" ) ) );
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula( Col Mean( as Column( __colname__ ), :old ) )
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula( Col Std Dev( as Column( __colname__ ) ) )
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula( Col Std Dev( as Column( __colname__ ) ) / Col Mean( as Column( __colname__ ) ) )
);
),
Expr( __colname__ ), colnames[i]
)
)
);
Dado que está utilizando la función Substitute(), también puede eliminar las funciones As Column() o Column() y reemplazar __colname__ con la referencia de columna real de: theactualcolumnname. Vea abajo
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Old", Character, Formula( If( :age >= 14, "Old", "Young" ) ) );
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula( Col Mean( __colname__ , :old ) )
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula( Col Std Dev( __colname__ ) )
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula( Col Std Dev( __colname__ ) / Col Mean( __colname__ ) )
);
),
Expr( __colname__ ), Parse( ":" || colnames[i] )
)
)
);