以下程式碼不起作用,但在 Stack 命令中將“n_series”替換為 3 時它可以起作用。
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
n_series = 3;
dt << Stack(
columns(:BP 8M, :BP 12M, :BP 6M, :BP 8W, :BP 12W, :BP 6W, :BP 8F, :BP 12F, :BP 6F),
Number of Series( n_series ),
Contiguous,
Source Label Column( "Day" ),
Stacked Data Column( "BP" )
);
我需要這個值變數。如何讓 Stack() 以可變數量的序列運作?
謝謝!
在這種情況下,您可以嘗試使用 Eval()
Names Default To Here(1);
n_series = 3;
dt = Open("$SAMPLE_DATA/Blood Pressure.jmp");
dt_stacked = dt << Stack(
columns(:BP 8M, :BP 12M, :BP 6M, :BP 8W, :BP 12W, :BP 6W, :BP 8F, :BP 12F, :BP 6F),
Number of Series(Eval(n_series)),
Contiguous,
Source Label Column("Day"),
Stacked Data Column("BP")
);
更通用的解決方案是評估表達式中的值
Names Default To Here(1);
n_series = 3;
dt = Open("$SAMPLE_DATA/Blood Pressure.jmp");
dt_stacked = Eval(EvalExpr(dt << Stack(
columns(:BP 8M, :BP 12M, :BP 6M, :BP 8W, :BP 12W, :BP 6W, :BP 8F, :BP 12F, :BP 6F),
Number of Series(Expr(n_series)),
Contiguous,
Source Label Column("Day"),
Stacked Data Column("BP")
)));