J'ai une table avec des noms de colonnes numériques variables et continus. J'ai besoin d'obtenir la moyenne de chaque colonne, regroupée par une colonne différente. Le script ci-dessous montre ce que j'essaie de faire et crée une table générique qui fonctionne à cette fin. Je suis bloqué sur la ligne "Mean(ColNames)" car il ne semble pas pouvoir traiter cela.
Si je remplace "Moyenne(ColNames)" avec "Mean(:Col2, :Col3)" ou "Mean(:Name("Col2"), :Name("Col3"))" alors cela fonctionne mais ne répond évidemment pas à mon besoin de pouvoir utiliser des colonnes variables . Suis-je proche ou loin ?
<BR />// Make a table to work with
nr = 20;
nc = 3;
dt = NewTable("Random_Table");
For(c=1, c<=nc, c++,
dt << NewColumn("Col"||Char(c), Numeric, Continuous, Formula(RandomInteger(1, 10)));
);
dt << AddRows(nr);
Column(1) << Data Type(Character);
//Get column names for the numeric continuous columns
ColNames = dt << Get Column Names(Numeric, "Continuous");
dt << Summary(
Group(:Col1),
Mean(ColNames),
statistics column name format( "column" )
);
Mettez et Eval() autour de la liste des colonnes et cela fonctionnera
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
ColNames = dt << Get Column Names(Numeric, "Continuous");
dt << Summary(
Group(:sex),
Mean(eval(ColNames)),
statistics column name format( "column" )
);