DT-2(添付)を分割しようとしています - 分割基準:マーカー、分割列:結果。残りの列を「すべて保持」したいのですが。
発生している問題は、一部のマーカーの行数が他のマーカーよりも多いことです。そのため、分割すると、次の「ロット」が結合され、テーブル内の最大値より少ない行数を持つ他のマーカーが埋め戻されます。
たとえば、ロット 7587082 の CD19+ の値は 3 つしかないはずですが、分割後は 6 と表示され、次のロット 7587083 の値が吸収されます。
これを正しく動作させるにはどうしたらいいでしょうか?何か見落としているのでしょうか?理想的には、これをスクリプトに組み込みたいのですが、現状は以下のようになっています(スクリプト全体は表示されておらず、分割部分のみが表示されています)。
dt3 = dt2 << Split( Split By( :マーカー ), Split( :結果 ) );
どのようなご助力でも大歓迎です!!!
列を保持するオプションを選択すると、元のテーブルの元の行から分割されたデータに正しく対応しない並べ替えられたデータが保持される列に入力される理由が理解できないと思います。 このデフォルトの動作は、どのような状況で役立ちますか?
たとえば、元のテーブルを行ごとに通過せず、分割後に元のテーブルごとに対応する行を含む新しいテーブルを生成しますが、選択した列だけを分割します。
私にとっての動作は、分割を行っている間、保持された列に並べ替えられたデータが表示されることです。
行ごとに正しく関連付けられたデータを保持する唯一の方法は、保持されているすべての列をグループ化に含めることです。
例としてここにデータテーブルをアップロードしたいのですが、明らかに私の会社は個人データを共有することを許可していません。
*編集: 表を書き直したので、ここにアップロードします。
この表には A から G までの列があります。
列 A、C、D、E のすべてのラベルを分割列 G の対応するデータに正しく関連付けたまま、列 G を列 B で分割したいと考えています。
次のスクリプトを実行すると、列 A、C、D、E のエントリが分割列 G からの相対値に対応しない、めちゃくちゃなテーブルが生成されます。
Data Table( "example-table" ) << Split( Split By( :B ), Split( :G ) )
これは私が思う正しい結果を生成します:
Data Table( "example-table" ) << Split(
Split By( :B ),
Split( :G ),
Group( :A, :C, :D, :E ),
Sort by Column Property
)
しかし、最初に何かをグループ化する必要がある理由をまだ理解していません:
次のスクリプトを実行すると、元のテーブルには A、B、C、D、E の特定の組み合わせに対して 1 つの行しかないことがわかります。したがって、グループ化は必要ありませんよね?
Data Table( "example-table" ) << Summary(
Group( :A, :C, :D, :E, :B ),
Freq( "None" ),
Weight( "None" )
)
Split Platform は汎用プラットフォームです。グループ化などに関して、データテーブルから情報を読み取ることはありません。ユーザーは、Split By、Split Columns、および Group 列に入力する必要があります。
この古い質問を復活させたいと思います。
この動作が発生する理由を説明していただけますか?
私は同じ問題に遭遇しましたが、列を保持するときにJMPが自動的にグループ化するのではなく、変数でグループ化する必要があるのは直感に反しますか?