テーブル内のすべての数値列を集計するやあ、
すべての数値列を含む集計表を作成しようとしています(次に、カテゴリ列を含む別の列)。
これを実行してみましたが、うまくいきません。
なにか提案を?
ティア
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
NumericCols = {};
for(i = 1, i <= N Cols(dt), i++,
Col = Column(dt,i);
ColDataType = Col << Get Data Type;
If( ColDataType == "Numeric",
Insert Into(NumericCols,Col << Get Name);
);
);
Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean ) ),
Column Table( Statistics( Std Dev ) ),
Column Table( Statistics( Min ) ),
Column Table( Statistics( Max ) ),
Column Table( Statistics( Median ) ),
Row Table(
Analysis Columns(
NumericCols = {}
)
)
)
)Re: 表のすべての数値列を集計するPS。
このコードを書き直して、数値ではなく連続列で動作するようにしました。 実際には公称であるが数値データと値ラベルを持ついくつかの列があるため、これは私のニーズにより適しています。
これが私が使用した最終的なコードです。
Names Default To Here( 1 );
dt = currentdatatable();
continuousCols /*NumericCols */ = dt << get column names( continuous /*numeric*/ );
dt << Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean, Std Dev ) ),
Column Table( Statistics( Min, Max ) ),
Column Table( Statistics( Median ) ),
Row Table( Analysis Columns( Eval( continuousCols /*NumericCols */ ) ) )
)
);
助けてくれてどうもありがとう!
Re: 表のすべての数値列を集計するここにあなたが望むことをするための1つの方法があります
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( nominal );
// Build a string variable that contains the required JSL
theExpr =
"dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( \!"% of Total\!" ) ) ),";
For( i = 1, i <= N Items( CharacterCols ), i++,
theExpr = theExpr ||
"Row Table( Grouping Columns( " || char(CharacterCols[i]) || ") ),";
);
theExpr = theExpr || "));";
// Execute the JSL
eval(parse(theExpr));
他のコミュニティ メンバーがより良い方法を使用している可能性があります
Re: 表のすべての数値列を集計する私に付き合ってくれてありがとう。 あなたが送信した 2 番目のコードでは、まだ必要な結果が得られません。
私が取得しようとしている結果は、前の投稿で投稿したコードの結果であり、その後にあなたのコードから取得した結果が続きます。
これは私が取得したいものです:

これは、投稿されたコードを使用して取得したものです。

ティア
Re: 表のすべての数値列を集計する問題は Tabulate コードにはありません。私が提供した Tabulate コードは問題なく動作します。問題は、表にある列の設定にあります。私があなたに送った最後のコードでは、ステートメント
CharacterCols = dt << get column names( character );
CharacterCols リストに入力すると、データ テーブルのすべての列のうち、データ タイプが文字でした。また、Tabulate は Lot_id 列、Lot ID の Wafer ID 列で正しく実行されました。これらは、データ テーブル内の文字データ型の 2 つの列のみです。分類変数のリクエストが 2 番目の集計、意味、文字列に含まれているというのは私の誤解でした。ただし、Classification には、Tabulate に Wafer と Site を含める必要があるという修正により、列の CharacterCols リストを別の方法で生成する必要があります。必要なすべての列をカバーするには、モデル化タイプが「公称」のすべての列を含むリストをロードします。したがって、ステートメントを次のように単純に変更すると、
CharacterCols = dt << get column names( nominal );
CharacterCols リストに配置されます。 {lot_id, ウェーハ, ロット ID 内のウェーハ ID, SITE};
変更されたJSLは以下のとおりです
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( nominal );
dt << Tabulate(
Set Format( Name( "% of Total" )(9, 0) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( eval( CharacterCols ) ) )
)
);
Re: 表のすべての数値列を集計する返信ありがとうございますが、投稿したコードでは必要なテーブルが提供されません。
これが、使用したデータファイルの例のコードです。これにより、必要なテーブルが得られます。
出力が異なることに注意してください。
Tabulate(
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( :lot_id ) ),
Row Table( Grouping Columns( :wafer ) ),
Row Table( Grouping Columns( :Wafer ID in lot ID ) ),
Row Table( Grouping Columns( :SITE ) )
)
);
私が違いがあると仮定した理由は、ここでは各行テーブルが個別に記載されているためですが、数値データではそれらはすべて同じ下にあったためです
"行テーブル(分析列("
次に、コンマで区切られた列名のリスト。
これにより、数字には単純なリストを使用できますが、文字には使用できないと思いました。
参考にしていただきありがとうございますスクリプト ガイド 絶対に時間を見つけて勉強する必要があります。
Re: 表のすべての数値列を集計するTabulate の構文は次のとおりです。いいえまったく異なります。実際には、「分析列」という言葉が「グループ化列」に変更されたことを除いて同じです。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( Character );
dt << Tabulate(
Set Format( Name( "% of Total" )(9, 0) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( eval( CharacterCols ) ) )
)
);
知りたいのですが、構文が大幅に異なると思われる理由は何ですか?分析列のサンプル集計をインタラクティブに実行し、実行したサンプルの JSL を JMP に提供してもらい、文字列に対して同じことを繰り返していると想定しています。それはあなたにほとんど同じJSLを示したでしょう。あなたが下した結論に至った理由を理解するのを手伝いたいので、できるだけ簡単にスクリプトを作成できるようにお手伝いします。
ああ...そして、スクリプト ガイドを読む必要があります....それを読むことに代わるものはありません。
ヘルプ==>JMP ドキュメント ライブラリ...……..スクリプト ガイド
Re: 表のすべての数値列を集計するやあ、
どうもありがとう!
カテゴリ列の構文がまったく異なることがわかりました。
次のような集計表が必要な場合、これをどのように行いますか。
Set Format( Name( "% of Total" )(9, 0) ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Re: テーブル内のすべての数値列を集計するこれは、より簡単な方法で数値列名を取得し、数値列のリストの周りに Eval() 関数を追加して機能させるコードの書き直しです。
.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
NumericCols = dt << get column names( numeric );
dt << Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean, Std Dev ) ),
Column Table( Statistics( Min, Max ) ),
Column Table( Statistics( Median ) ),
Row Table( Analysis Columns( Eval( Numericcols ) ) )
)
);
Re: テーブル内のすべての数値列を集計する誤って上記の質問を編集し、質問を自分の回答に変更してしまいました。 @eliyahu100間違いをお詫びします。