ループしてそれぞれの一意の値の最大値を見つけますこんにちは、
X と Y の各値を反復処理し、最大 rn 値を MaxValue 列に保存しようとしています。
これが私が試したものですが、何かが正しくないようです。 何かアドバイス?
Names Default To Here( 1 );
// Assuming your data table is named 'dt'
dt = Current Data Table();
// Create a new column "MaxValue" and initialize with a large negative number
// Loop through unique Barcode values
// Loop through rows
dt << begin data table();
// Loop through rows
For( i = 1, i <= N Rows( dt ), i++,
currentBarcode = dt:Barcode[i];
// Find the location of the maximum rn value for the current Barcode
maxRNRow = Max( dt:rn[dt:Barcode[i] == currentBarcode] );
// Check if the maxRNRow is not 0 (meaning there is at least one matching Barcode)
If( maxRNRow != 0,
// Update "MaxValue" column with the max rn value for the current Barcode
dt:MaxValue[i] = dt:rn[maxRNRow]
);
);
dt << end data table();
自動化とスクリプト作成Re: それぞれの一意の値の最大値を見つけるループ代わりにこれを試してください。
Col Max( :rn, :Y, :X )
編集
わかりやすくするために、:MaxValue の式を次のように設定します。
Col Max( :rn, :Barcode )
Re: それぞれの一意の値の最大値を見つけるループここではループは必要ありません。 何ができますか@mmarchandTSI提案され、byvar で Col Max を使用する場合は、Summarize を使用して最大値を計算し、それらを使用して新しい列を作成するか、要約テーブルを作成してそれを最大値でテーブルに結合 (またはむしろ更新) することもできます。 また、開始/終了メッセージは次のとおりです。
dt << Begin Data Update;
dt << End Data Update;
Re: それぞれの一意の値の最大値を見つけるループ@mmarchandTSI Col max は :Barcode 列でのみ機能します。 問題は、一部のテーブルにバーコード列がないことです。そのため、X 座標と Y 座標を使用して最大 rn 値を割り当てることができるかどうかを確認しようとしています。
Re: それぞれの一意の値の最大値を見つけるループ複数の byvar を追加できます
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Maximum Value for Each Age and Sex Group",
Formula(Col Maximum(:height, :age, :sex))
);

列最大()
Re: それぞれの一意の値の最大値を見つけるループそうですね、私が投稿した最初の式は、あなたがやっていることに対して機能します。 @jthiとほのめかした。