JSL: come modificare una colonna in un numero intero di 1 byteSto lavorando con file di grandi dimensioni e sto cercando di essere più parsimonioso quando si tratta di memoria. Voglio cambiare il tipo di dati per alcune colonne in "1 byte intero" usando JSL ma non riesco a capirlo.
Ho impostato le mie preferenze Tabella su "Consenti formato dati numerico breve" e posso modificare manualmente il tipo di dati di una colonna, ma devo farlo con JSL.Se cambio il tipo di dati a mano e quindi copio e incollo la colonna in uno script, vedo che il tipo di dati per un intero a 1 byte sembra essere "Numeric(1)" . Forse è un indizio.
Ecco alcune cose che ho provato:
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 NumericProbabilmente è qualcosa di semplice, ma finora non ho trovato alcuna soluzione nella Guida o nella community di JMP. Qualsiasi aiuto sarebbe apprezzato. (Sono su JMP 16.1.)
Tabella datiSceneggiaturaRe: JSL: come modificare una colonna in un numero intero di 1 byteCerca l'indice di script con "1 byte":

Sembra funzionare:

Re: JSL: come modificare una colonna in un numero intero di 1 byteGrazie! Speravo di trovare un modo per dire a JMP quando creo la colonna che saranno solo uno e zero e quindi un numero intero di 1 byte è sufficiente.
Mi sembra strano che io possa forzare una colonna a essere un numero intero di 1, 2 o 4 byte usando i menu delle proprietà della colonna, ma non posso farlo con gli script.Mi chiedo se questo abbia a che fare con il fatto che esiste un'opzione di preferenza che consente questi tipi di dati e JSL non è abbastanza "intelligente" per sapere se è abilitato ma la GUI lo è.

La compressione è una soluzione, ma sarei comunque interessato se qualcuno sapesse come impostare il tipo di modellazione prima di popolare la colonna.
Re: JSL: come modificare una colonna in un numero intero di 1 byteEcco un esempio per creare una nuova variabile come colonna di dati con una lunghezza di parola breve per interi con segno utilizzando un singolo byte.
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 ) );