JSL : Comment changer une colonne en un entier de 1 octetJe travaille avec des fichiers volumineux et j'essaie d'être plus économe en mémoire. Je veux changer le type de données pour certaines colonnes en "entier 1 octet" en utilisant JSL mais je n'arrive pas à le comprendre.
J'ai défini mes préférences de table sur "Autoriser le format de données numériques courtes" et je peux modifier manuellement le type de données d'une colonne, mais je dois le faire avec JSL.Si je change le type de données à la main, puis que je copie et colle la colonne dans un script, je vois que le type de données pour un entier de 1 octet semble être "Numeric(1)" . C'est peut-être un indice.
Voici certaines choses que j'ai essayées :
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 NumericC'est probablement quelque chose de simple, mais je n'ai trouvé aucune solution dans l'aide ou la communauté JMP jusqu'à présent. Toute aide serait appréciée. (Je suis sur JMP 16.1.)
Tableau de donnéesScriptRe : JSL : comment changer une colonne en un entier de 1 octetPour définir une colonne existante au format 1 octet, regardez cet exemple :
// 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 : comment changer une colonne en un entier de 1 octetVoici un exemple pour créer une nouvelle variable sous forme de colonne de données avec une courte longueur de mot pour les entiers signés en utilisant un seul octet.
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 : comment changer une colonne en un entier de 1 octetMerci! J'espérais trouver un moyen de dire à JMP lorsque je crée la colonne qu'il n'y aura que des uns et des zéros et que, par conséquent, un entier de 1 octet est suffisant.
Il me semble étrange que je puisse forcer une colonne à être un entier de 1, 2 ou 4 octets à l'aide des menus de propriétés de colonne, mais je ne peux pas le faire avec des scripts.Je me demande si cela a à voir avec le fait qu'il existe une option de préférence qui autorise ces types de données et que JSL n'est pas assez "intelligent" pour savoir si cela est activé, mais l'interface graphique l'est.

La compression est une solution, mais je serais toujours intéressé si quelqu'un sait comment définir le type de modélisation avant de remplir la colonne.
Re : JSL : comment changer une colonne en un entier de 1 octetRechercher l'index de script avec "1-byte":

Semble fonctionner :

Re : JSL : Comment convertir une colonne en un entier de 1 octetVeuillez noter.
Le type entier N bits est idéal pour compresser les colonnes.
D'autre part, l'utilisateur doit faire attention aux calculs ultérieurs, en particulier lorsque le calcul est lancé via le
clic droit / Nouvelle colonne Formule / Menu Formule :

Commençons par
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] ),
)
);
et calculer

JMP copie le type de données de la colonne d'entrée et au lieu de 0,1, il renverra :

En revanche, lorsque l'utilisateur sélectionne les deux colonnes d'entrée et calcule le « ratio » via :

JMP crée la colonne avec

réglage ... et le résultat est 0,1 :
