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 mit JSL in "1-Byte-Ganzzahl" ändern, kann es aber nicht herausfinden.
Ich habe meine Tabelleneinstellungen auf "Kurzes numerisches Datenformat zulassen" eingestellt und kann den Datentyp einer Spalte manuell ändern, aber ich muss es mit JSL tun.Wenn ich den Datentyp von Hand ä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 Anhaltspunkt.
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 keine Lösung in der JMP-Hilfe oder -Community gefunden. Jede Hilfe wäre willkommen. (Ich bin auf JMP 16.1.)
DatentabelleSkripterstellungBetreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlSuchskriptindex mit "1-Byte":

Scheint zu funktionieren:

Betreff: JSL: So ändern Sie eine Spalte in eine 1-Byte-GanzzahlDanke! Ich hatte gehofft, einen Weg zu finden, JMP beim Erstellen der Spalte mitzuteilen, dass es nur Einsen und Nullen sein wird und daher eine 1-Byte-Ganzzahl ausreichend ist.
Es erscheint mir seltsam, dass ich eine Spalte mit den Spalteneigenschaften-Menüs zwingen kann, eine 1-, 2- oder 4-Byte-Ganzzahl zu sein, aber ich kann es nicht mit Skripten tun.Ich frage mich, ob dies 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.

Komprimieren ist eine Lösung, aber ich wäre immer noch daran interessiert, 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-GanzzahlHier ist ein Beispiel, um eine neue Variable als Datenspalte mit einer kurzen Wortlänge für vorzeichenbehaftete Ganzzahlen mit einem einzelnen Byte 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 ) );