数値はどのように一意の値に配列されるのでしょうか?次の Column1 があり、Column1 に連続する繰り返し数を含む新しい列を作成する必要があります。
結果のテーブルは次のようになります。
JSL でコーディングする方法について何か提案はありますか? (または列の式で?) ありがとうございます!
Re: 数値を一意の値に並べるにはどうすればよいですか?列式のメソッドは次のとおりです。
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Create Cumulative Frequencies
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
dt:CumulativeFreqCount << Set Each Value(
If(
Row() == 1, 1,
:MyValues == Lag( :MyValues, 1 ), Lag(:CumulativeFreqCount, 1 ) + 1,
1
)); // end set each valueRe: 数値を一意の値に並べるにはどうすればよいですか?実は、合計だけではなく、累積合計を取得したい部分を見逃していました。
これを行うための、より賢明で効率的な方法があると確信しています。 ただし、これは機能します。
基本的には、テストして遊べるように、生データも作成しています。
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Generate summary
dt1 = dt << Summary( Group( :MyValues ), Freq( "None" ), Weight( "None" ) );
UniqueItems = dt1:MyValues << Get values;
FrequencyOfItems = dt1 << Get As Matrix; <BR /><BR />Close(dt1,"No Save");
// Add Cumulative Frequencies back
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
for(i = 1, i <= N Items(UniqueItems),i++,
Rows = dt << Select Where(:MyValues == UniqueItems[i]) << Get Selected Rows;
ValsToAppend = Transpose(Index(1,FrequencyOfItems[i]));
dt[Rows,"CumulativeFreqCount"] = ValsToAppend;
dt << Clear Select;
); 
Re: 数値を一意の値に並べるにはどうすればよいですか?ありがとう。コードを JMP スクリプト ファイル (添付ファイルを参照) に挿入しましたが、スクリプトは実行されません。助言がありますか?
コードを列の数式に入れる方が簡単でしょうか?
Re: 数値を一意の値に並べるにはどうすればよいですか?@rs 、
データテーブルへの参照があると仮定します - dt としましょう:
dt1 = dt << Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
)
データがソートされていない場合 (通常はソートされるはずです)、結果のテーブルに対して sort() を使用できます。