こんにちは、みんな、
40 列と 300 以上の行を含むデータセットがあります。
すべての列 (= イベント名) の値はバイナリであり、各行のイベントへの出席の有無を意味します。
さまざまなイベント/コラム間に出席者数に相関関係があるかどうかを確認することに興味があります。
これを散布図行列で視覚化することができました。
散布図行列の両方のイベントに行が含まれる場合のみに興味があるため、両方の列/イベントに値 1 を持つ値のみを表示するように行列の軸を調整しました。
私の散布図行列は下の画像のようになりますが、かなり大きくなります。
すべてのドットは、散布図行列の両方のイベント/列の値が 1 である行です。
しかし、イベント/列 (= 散布図行列の個々のボックス/サブプロット) のさまざまな組み合わせのドットを数えるのは非常に困難です。
私の質問は、個々のボックス内のドットを各ボックスの実際のカウント数に変更することは可能ですか?

散布図行列の構文は次のようになります。
読みやすくするために、すべてのイベント名をリストするのではなく、2 つの列/イベントのスケールボックス構文のみをリストすることに注意してください。
これは赤いテキストで強調表示されます。
:
散布図行列(
Y(
: ここには、約 40 個の列/イベント名が含まれる長いリストがあります。
行列形式( "下三角" )、
SendToReport(
急送(
{}、
「140」、
スケールボックス、
{最小( 0.5 )、最大( 1.5 )、増分( 1 )、マイナーティック( 0 )}
)、
急送(
{}、
「139」、
スケールボックス、
{Format( "Best", 15 ), Min( 0.5 ), Max( 1.5 ), Inc( 1 ),
マイナーティック(0)}
)、
他の 38 個の列/イベントに対して、さらに 38 個の同様のコード セグメントが続きます。
これは、カウントを含む新しいデータテーブルを作成するスクリプトです。

これにより、散布図のカウントが得られ、値のカラー マップを提供するセル プロットが作成されます。

Names Default to Here( 1 );
dt = Current Data Table();
dtCounts = New Table( "Counts", add rows( 40 ) );
dtCounts << delete columns( :column 1 );
For( i = 1, i <= 40, i++,
dtCounts << New Column( "c" || Char( i ), set each value( . ) )
);
For( i = 1, i <= 40, i++,
For( k = i, k <= 40, k++,
theCount = Length( dt << get rows where( As Column( dt, i ) == 1 & As Column( dt, k ) == 1 ) );
dtCounts[i, k] = theCount;
dtCounts[k, i] = theCount;
)
);
dtCounts << New Column( "The Columns", character, set each value( "c" || Char( Row() ) ) );
dtCounts << move selected columns( :The Columns, to first );
dtCounts << Cell Plot(
Scale Uniformly( 1 ),
Center at zero( 0 ),
Y(
:c1, :c2, :c3, :c4, :c5, :c6, :c7, :c8, :c9, :c10, :c11, :c12, :c13, :c14, :c15, :c16, :c17, :c18,
:c19, :c20, :c21, :c22, :c23, :c24, :c25, :c26, :c27, :c28, :c29, :c30, :c31, :c32, :c33, :c34, :c35,
:c36, :c37, :c38, :c39, :c40
),
Label( :The Columns ),
Legend( 1 ),
SendToReport(
Dispatch( {}, "Cell Plot Report", FrameBox, {Frame Size( 79, 23 )} ),
Dispatch( {}, "", Lineup Box( 2 ), {Spacing( 1 )} )
)
);
どうもありがとうございました!
カウントを含む新しいデータ テーブルは、複数の値をランダムにチェックする場合に意味があります。
しかし、どういうわけか、表と対応する図は列 16 の後で停止します (以下を参照)。
単純にコピー&ペーストしたスクリプトには何も異常はありません(つまり、余分なカンマや誤って入力したものはありません)。
これがなぜ起こるのか何か提案はありますか?

データのコピーを添付して頂くことは可能でしょうか?必要に応じて、データを添付する前に匿名化できます。
また、ディスプレイには 41 列があり、コードでは 40 列を想定しています。