多変量で列名を取得できませんこんにちは、
プロセスを自動化しようとしています。これが冒頭部分の概要です。
- たたく
- テーブルを作る
- すべての連続した列で多変量を走らせる - だから私は相関行列を得ることができる
実行多変量部分に苦労しています。必要な列をそこに配置する方法がわかりません。これは私が列名を知っていて、この部分にそれらを貼り付けるならばうまくいきます:
多変量 (
Y ( ここに列の名前 ) 、
しかし、列名がわからないので、リスト変数またはそれに対応するものを追加したいと思います。どうぞよろしくお願いいたします。
これが全部です:
dt = data table("wpu10");
tab1= dt<<TABULATE></TABULATE>
再:多変量の列名を取得することはできませんあなたはかなり親密でした....これを試してください
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value ) ), Row Table( Grouping Columns( :year ) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous, string );
Multivariate(
Y( Eval List( colnameslist ) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
再:多変量の列名を取得することはできませんY()引数は、名前(文字列)ではなく、1つ以上の列参照を必要とします。これを機能させるもう1つの方法があります。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
col name = dt << Get Column Names( "Continuous" );
col expr = Expr( Y() );
For( i = 1, i <= N Items( col name ), i++,
Insert Into( col expr, Column( col name[i] ) );
);
Eval(
Substitute(
Expr(
Multivariate(
yyy,
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
),
Expr( yyy ),
Name Expr( col expr )
)
);再:多変量の列名を取得することはできません助けてくれてありがとう、でもまだ問題があるようです。次の場合に備えて、ログからこれを取り出しました。
"合計(値、WPU106、金属及び金属製品のPPI商品データ - 加熱装置、季節調整済みではない)"、
"合計(WPU107、金属及び金属製品のPPI商品データ - 製造された構造用金属製品、季節調整されていない)"、
役割には少なくとも1つの列が必要です。
)、多変量(/ * ### * / Y(評価リスト(colnameslist))、
推定法( "ペアワイズ")
マトリックスフォーマット( "Square")再:多変量の列名を取得することはできません私はあなたのsolutinoを適応させようとしましたが、多変量出力を得るためにそれを手に入れることができませんでした。
問題は列名がわからないことです。"dtTab1 = tab1 << makeintodatatable;"を実行した後に名前を取得する方法が必要です。
あなたのコードが私を示しているかもしれませんが、それでも方法を見るのに苦労しています。あなたはあなたがyyyを持っているか、その名前を持つことになる変数になることを望んでいるそのカラム名が必要ですか?
再:多変量の列名を取得することはできませんこれらのエラーがどのように関係しているかわかりません。Yロールの多変量の列名として表ラベルを使用しようとしていますか?
今はスクリプトを忘れてください。結果をインタラクティブに達成できますか?つまり、Tabulateを使用して対話的にサマリーを取得し、結果を新しいデータテーブルに保存して、多変量を起動しますか?
「Sum(... ) "は、特別な処理なしでEval List()呼び出しの列参照ではなく、関数呼び出しとして解釈されます。
再:多変量の列名を取得することはできませんあなたが遭遇している問題は、Tabulateテーブルからテーブルを作成するときに生成されている複雑な名前です。 以下のスクリプトでは、集計表を要約プラットフォームに置き換えました。 これは複雑な名前の問題を排除するものではありませんが、1つの簡単なアクションでデータテーブルを作成します。これは、ほとんどの場合、Tabulate出力と同じです。 複雑な名前を処理するためにスクリプトが行うことは、:Name()関数の列名のリスト内の各要素の周囲の場所で、関数の内容を列名として扱うようにJMPに直接指定することです。 最後に、このリストは分析を行うために多変量プラットフォームに渡されます。
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
/*tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value) ), Row Table( Grouping Columns( :year) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );*/
// Create the data table directly
dtTab1 = dt << Summary(
Group( :year ),
Sum( :value ),
Subgroup( :series_id, :series_title ),
Freq( "None" ),
Weight( "None" )
);
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous,string);
// Get rid of the Row Number column from the list
colnameslist = remove( colnameslist, 2, 1 );
// Create a new list adding the :Name() function around each column name
// to handle the complex names the summary gave them
thelist={};
For( i = 1, i <= N Items( colnameslist ), i++,
xx = colnameslist[i];
Insert Into( thelist, Parse( Eval Insert( ":Name(\!"^xx^\!")" ) ) );
);
// Run the correlations
dtTab1 << Multivariate(
Y( eval(thelist) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
また、サポートします @markbailey 分析をインタラクティブに行うことができるという彼のコメントの中で。 これが分析ではない場合は、何度も繰り返しますが、スクリプトを作成するのは面倒です。
再:多変量の列名を取得することはできませんご助力ありがとうございます!私はそれをすべてのポイントとクリックをやってしまった。私は今朝あなたの最後のメッセージに従うことを試みましたが、それでもまだ少し失われました。列名は間違いなく問題になる可能性があります。また、手動でそれを実行してdtTab1テーブルに移動した後、[分析]> [多変量メソッド]> [多変量JMP]に移動すると、dtテーブルに対して実行することができます。そのプロセスを2回目にして初めて、JMPは新しいテーブルでそれをやりたいと思っています。
私はJMP 12を使っているので、それが私にも問題を引き起こしているのかどうかわかりません。
再:多変量の列名を取得することはできませんあなたのデータテーブルのサンプルを共有できますか?
再:多変量の列名を取得することはできませんはい、私が添付したのは、あなたが私を手助けしてきたコードの中でハングアップするテーブルです。このテーブル(dtTab1)から相関係数テーブル(分析>多変量メソッド>多変量出力から作成されたもの)のようにします。
私が手動でそれをするためにステップを引き継ぐときでさえ私が述べたように、その少しファンキーです。dtTab1が作成された後、最初に上記の手順を実行するとき、多変量解析を実行する列のプロンプトは、最初のテーブル(1つの列のすべてのインデックスと別の列の名前)からのものです。あなたもそれをしたい場合は私を知ってみましょう)