JSL: 列を 1 バイト整数に変更する方法私は大きなファイルを扱っており、メモリに関してはもっと倹約しようとしています。 一部のカラムのデータ型をJSLで「1バイト整数」に変更したいのですが、わかりません。
テーブルの設定を「短い数値データ形式を許可する」に設定しました。列のデータ型を手動で変更できますが、JSL を使用する必要があります。データ型を手動で変更し、列をコピーしてスクリプトに貼り付けると、1 バイト整数のデータ型が "Numeric(1)" のように見えます。 多分それは手がかりです。
ここに私が試したいくつかのことがあります:
dt = open("$sample_data/big class.jmp");
dt:age << Data Type(1-byte integer); //error "Agument to Type..."
dt:age << Data Type("1-byte integer"); //error "Agument to Type..."
dt:age << Data Type(Character); //this works, changes to Character
dt:age << Data Type(Numeric); //this works, changes to Numeric
dt:age << Data Type(Numeric(1)); //no error, but data type stays Numericおそらく簡単なことですが、JMP のヘルプやコミュニティで解決策を見つけることができませんでした。 どんな助けでも大歓迎です。 (私はJMP 16.1を使用しています。)
データ表スクリプティングRe:JSL:カラムを1バイト整数に変更する方法既存の列を 1 バイト形式に設定するには、次の例を見てください。
// set JMP preferences to accept short numeric words
Set Preference( Allow short numeric data format( 1 ) );
dt = New Table( "Untitled",
Add Rows( 3 ),
New Column( "1 Byte Format",
Numeric( 1 ),
"Continuous",
Set Values( [1, 2, 3] )
),
New Column( "New Column",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 5, 6] )
)
);
dt:New Column << set data type("numeric", 1);Re:JSL:カラムを1バイト整数に変更する方法以下は、1 バイトを使用して、符号付き整数の語長が短いデータ列として新しい変数を作成する例です。
Names Default to Here( 1 );
// open target data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// set JMP preferences to accept short numeric words
Set Preference( Allow short numeric data format( 1 ) );
// create a new column using shortened numeric data type
shorty = dt << New Column( "Short Age", Numeric( 1 ), Continuous,
Values( :age << Get As Matrix )
);
// your done. maybe set preference back to default
Set Preference( Allow short numeric data format( 0 ) );
Re:JSL:カラムを1バイト整数に変更する方法ありがとう! 列を作成するときに、列が 1 と 0 だけになるため、1 バイトの整数で十分であることを JMP に伝える方法を見つけたいと考えていました。
列のプロパティ メニューを使用して列を 1、2、または 4 バイトの整数に強制できるのは奇妙に思えますが、スクリプトを使用してそれを行うことはできません。これは、これらのデータ型を許可する設定オプションがあり、JSL はこれが有効になっているかどうかを知るのに十分「スマート」ではなく、GUI が有効であるという事実と関係があるのでしょうか。

圧縮は解決策ですが、列にデータを入力する前にモデリング タイプを設定する方法を誰かが知っていれば、私はまだ興味があります。
Re:JSL:カラムを1バイト整数に変更する方法スクリプト インデックスを「1 バイト」で検索:

動作しているようです:

Re: JSL: 列を1バイト整数に変換する方法ご注意ください。
N ビット整数型は列を圧縮するのに適しています。
一方、ユーザーは、特に計算が
右クリック / 新しい数式列 / 数式メニュー:

まずは
dt = New Table( "numeric data",
Add Rows( 3 ),
New Column( "numeric 1 byte Integer",
Numeric( 1 ),
Set Values( [1,2,3] ),
),
New Column( "numeric (default)",
Numeric,
Set Values( [10,20,30] ),
)
);
計算する

JMP は入力列のデータ型をコピーし、0.1 の代わりに次を返します。

一方、ユーザーが両方の入力列を選択し、次のようにして「比率」を計算すると、

JMPは次のような列を作成します

設定...結果は0.1です:
