Ich habe eine Tabelle mit variablen numerischen, fortlaufenden Spaltennamen. Ich muss den Mittelwert jeder Spalte erhalten, gruppiert nach einer anderen Spalte. Das folgende Skript zeigt, was ich versuche, und es erstellt eine generische Tabelle, die für diesen Zweck funktioniert. Ich werde in der Zeile "Mean(ColNames)" aufgehängt, weil sie das anscheinend nicht verarbeiten kann.
Wenn ich tausche "Mittelwert (Spaltennamen)" mit "Mean(:Col2, :Col3)" oder "Mean(:Name("Col2"), :Name("Col3"))" dann funktioniert es, erfüllt aber offensichtlich nicht mein Bedürfnis, variable Spalten verwenden zu können . Bin ich nah oder weit weg?
<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" )
);
Setzen Sie und Eval() um die Spaltenliste und es wird funktionieren
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" )
);