JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlIch arbeite mit großen Dateien und versuche, beim Speicher sparsamer zu sein. Ich möchte den Datentyp für einige Spalten mithilfe von JSL in „1-Byte-Ganzzahl“ ändern, komme aber nicht dazu.
Ich habe meine Tabelleneinstellungen auf „Kurzes numerisches Datenformat zulassen“ eingestellt und kann den Datentyp einer Spalte manuell ändern, muss dies jedoch mit JSL tun.Wenn ich den Datentyp manuell ändere und dann die Spalte kopiere und in ein Skript einfüge, sehe ich, dass der Datentyp für eine 1-Byte-Ganzzahl „Numeric(1)“ zu sein scheint. Vielleicht ist das ein Hinweis.
Hier sind einige Dinge, die ich versucht habe:
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 NumericEs ist wahrscheinlich etwas Einfaches, aber ich habe bisher weder in der JMP-Hilfe noch in der Community eine Lösung gefunden. Jede Hilfe wäre dankbar. (Ich verwende JMP 16.1.)
MassenanpassungBetreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlUm eine vorhandene Spalte auf das 1-Byte-Format festzulegen, sehen Sie sich dieses Beispiel an:
// 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);Betreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlHier ist ein Beispiel, um eine neue Variable als Datenspalte mit einer kurzen Wortlänge für vorzeichenbehaftete Ganzzahlen unter Verwendung eines einzelnen Bytes zu erstellen.
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 ) );
Betreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlDanke! Ich hatte gehofft, eine Möglichkeit zu finden, JMP beim Erstellen der Spalte mitzuteilen, dass es nur Einsen und Nullen geben wird und daher eine 1-Byte-Ganzzahl ausreicht.
Es kommt mir seltsam vor, dass ich mithilfe der Spalteneigenschaftenmenüs erzwingen kann, dass eine Spalte eine 1-, 2- oder 4-Byte-Ganzzahl ist, aber mit Skripten ist das nicht möglich.Ich frage mich, ob das damit zu tun hat, dass es eine Einstellungsoption gibt, die diese Datentypen zulässt, und JSL nicht „intelligent“ genug ist, um zu wissen, ob dies aktiviert ist, die GUI jedoch schon.

Komprimieren ist eine Lösung, aber es würde mich trotzdem interessieren, ob jemand weiß, wie man den Modellierungstyp vor dem Auffüllen der Spalte festlegt.
Betreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlSkriptindex mit „1-Byte“ durchsuchen:

Scheint zu funktionieren:

Betreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlBitte beachten Sie.
Der N-Bit-Integer-Typ eignet sich gut zum Komprimieren der Spalten.
Andererseits muss der Benutzer bei nachfolgenden Berechnungen vorsichtig sein, insbesondere wenn die Berechnung über das
Rechtsklick / Neue Formelspalte / Formelmenü:

Beginnen wir mit
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] ),
)
);
und berechnen

JMP kopiert den Datentyp der Eingabespalte und gibt anstelle von 0,1 Folgendes zurück:

Wenn der Benutzer hingegen beide Eingabespalten auswählt und das „Verhältnis“ wie folgt berechnet:

JMP erstellt die Spalte mit

Einstellung ... und das Ergebnis ist 0,1:
