1列だけ重ねる私はJMPが1列だけ積み重ねることによって私たちを制限していることを知り、失望しました。 ただ1つの列を積み重ねることは意味がないことを私は理解しています、しかしそれは単にデータ変換であるのでそれをしたいのは意味があります。
とにかく、私は会話を開いて、私がしたよりも良い回避策を思いつくことができる人を見たかったです。 これが私のものです:
Names Default to Here(1);
//Example Data Table
dt = Open( "$SAMPLE_DATA/Decathlon.jmp" );
//col list is list of columns from 1 to n (never an empty list)
colList = {"Javelin", "Pole Vault"};
//Stack columns to prepare data for analysis
if(nitems(colList) > 1,
analysisColsExpr = Expr(columns());
for(i=1; imax=nitems(colList), i<=imax, i++,
col = Column(dt, colList[i]);
insert into(analysisColsExpr, col);
);
dtAnalysis = Eval(Eval Expr(dt << Stack(
Expr( Name Expr( analysisColsExpr )),
Source Label Column( "AnalysisType" ),
Stacked Data Column( "AnalysisValue" ),
Output Table( "Stacked Data" )
)));
close(dt, nosave);
,
//Can't stack only one column adjust columns to match above strategy
dt << New Column("AnalysisType", Character, Nominal, Formula(colList[1]));
column(dt, colList[1]) << Set Name("AnalysisValue");
dt << Set Name("Stacked Data");
dtAnalysis = dt;
);
//Run Analysis
oneway = dtAnalysis << Oneway( Y( :AnalysisValue ), X( :AnalysisType ) );
がんばろう!
再:ちょうど1列を積み重ねるこれは素晴らしい戦略であり、JMP 13では完全に機能します。ただし、JMP 12では、NameはLabel列であるため、転置関数のラベル列として自動的にスローされます - 戦略を短絡させます。 それがバグであったかどうかはわかりませんが、JMP 13で修正されて嬉しいです。 残念ながら、私のチームでJMP 13が現在使われているのは私だけです。
再:ちょうど1列を積み重ねる条件なしの別のアプローチ(元のデータテーブルの行数が1を超えると仮定)
Names Default To Here(1);
//Example Data Table
dt = Open("$SAMPLE_DATA/Decathlon.jmp");
//col list is list of columns from 1 to n (never an empty list)
colList = {"Javelin", "Pole Vault"};
dtTemp = dt << Transpose(Private, Columns(colList), Label Column Name("AnalysisType"));
stackList = (dtTemp << get column names)[2 :: N Row(dt) + 1];
dtAnalysis = dtTemp << Stack(
Columns(stackList),
Stacked Data Column("AnalysisValue"),
Output Table("Stacked Data")
);
//Run Analysis
oneway = dtAnalysis << Oneway(Y(:AnalysisValue), X(:AnalysisType));
再:ちょうど1列を積み重ねるこれは、列が1つしかない場合に元のテーブルを台無しにしない、つまり元のテーブルをアプローチに適応させる代わりに新しいテーブルを作成する(Stack()のように)方法です。
Names Default To Here(1);
//Example Data Table
dt = Open("$SAMPLE_DATA/Decathlon.jmp");
//col list is list of columns from 1 to n (never an empty list)
colList = {"Javelin", "Pole Vault"};
If(N Items(colList) > 1,
dtAnalysis = dt << Stack(
Columns(colList),
Source Label Column("AnalysisType"),
Stacked Data Column("AnalysisValue"),
Output Table("Stacked Data")
),
dtAnalysis = New Table("Stacked Data",
addrows(N Rows(dt)),
New Column("AnalysisType", character, set each value(colList[1])),
New Column("AnalysisValue", numeric, values(Column(dt, colList[1]) << getvalues))
)
);
//Run Analysis
oneway = dtAnalysis << Oneway(Y(:AnalysisValue), X(:AnalysisType));