Re : Stocker des tables de données sous forme de métadonnées (variables de table) JSLhttps://community.jmp.com/t5/Discussions/difference-between-set-and-new-table-variable-strange-results-in/mp/429212/highlight/true#M67868 depuis différence entre set et new table variable - résultats étranges lors de l'écriture d'une chaîne?décrit quatre fonctions différentes, set/get/new table variable et dt:tablevar et recommande d'utiliser set table variable et dt:tablevar.
Re : Stocker des tables de données sous forme de métadonnées (variables de table) JSLLa variable à stocker est une table de données. Le dt:tablevar ne semble pas fonctionner dans ce cas.
Re : Stocker des tables de données sous forme de métadonnées (variables de table) JSLLes variables de table sont des chaînes de caractères.
Si vous voulez que dt_recover soit le même après, vous devrez convertir dt_metadata dans la représentation de chaîne de caractères de l'expression lorsque vous la stockez dans la variable de table. Vous devrez ensuite l'analyser lorsque vous le récupérerez de la variable.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_metadata = Open( "$SAMPLE_DATA/Solubility.jmp" );
dt << Set Table Variable( "dt_user", char(dt_metadata));
close(dt_metadata);
dt_recovered = parse(dt << Get Table Variable("dt_user"));
show(dt_recovered);
show(Is String(dt_recovered));
//dt_recovered = Data Table("Solubility.jmp");
//Is String(dt_recovered) = 0;
Re : Stocker des tables de données sous forme de métadonnées (variables de table) JSLVoici trois exemples qui intègrent les données de la table B dans la table A . Je préfère l'exemple dtb3 pour les tables de taille raisonnable. L'exemple dtb4 est ce que je pense que vous avez décrit; c'est peut-être mieux pour une énorme table B, mais c'est très opaque pour n'importe qui d'autre. dtb5 combine les deux idées.
// Make sample tables. When done, aa will have two table scripts and a table variable.
// the scripts and variables show three ways to embed bb in aa.
dta = New Table( "aa", New Column( "a", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1] ) ) );
dtb = New Table( "bb", New Column( "b", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2] ) ) );
// dtb3: I think you should do this with a table script because it can be
// opened from the GUI or from JSL. The downside is if the table is
// very large it will be slow to save and slow to open because it is
// making a script to recreate the table.
Eval( Eval Expr( dta << NewScript( "bbb", Expr( dtb << getScript ) ) ) );
// jsl to open:
dtb3 = Eval( dta << getScript( "bbb" ) );
dtb3 << SetName( "dtb3" ); // optional, was "bb 2"
// dtb4: it gets ugly with a table variable, there are several possibilities. This
// will save the table and grab the binary from the disk file and make a character
// string from that. You might choose to do this for a really large file, but I'm
// not sure what issues you'll run into.
dtb << Save( "$temp/bb.jmp" );
blob = Load Text File( "$temp/bb.jmp", blob );
blob = Gzip Compress( blob );// optional
text = Char( blob );
dta << SetTableVariable( "bbbb", text );
// reopen
text = dta:bbbb;
blob = Parse( text );
blob = Gzip Uncompress( blob );//optional
dtb4 = Open( blob, "jmp" );
dtb4 << SetName( "dtb4" ); // optional, was "untitled"
// dtb5: you could combine the two ideas, saving the binary data as a table script so
// it can be used from the GUI
dtb << Save( "$temp/bb.jmp" );
blob = Load Text File( "$temp/bb.jmp", blob );
blob = Gzip Compress( blob );// optional
text = Char( blob );
Eval(
Eval Expr(
dta << NewScript(
"bbbbb",
Local( {text, blob, dt},
text = Expr( text );
blob = Parse( text );
blob = Gzip Uncompress( blob );//optional
dt = Open( blob, "jmp" );
dt;
)
)
)
);
// reopen
dtb5 = Eval( dta << getScript( "bbbbb" ) );
dtb5 << SetName( "dtb5" ); // optional, was "untitled"
Re : Stocker des tables de données sous forme de métadonnées (variables de table) JSLOu, si vous voulez laisser un lien plutôt que d'intégrer les données, utilisez peut-être le nom de fichier pour la table liée :
dta = New Table( "aa", New Column( "a", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1] ) ) );
dtb = New Table( "bb", New Column( "b", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2] ) ) );
dta << Save( "$temp/aa.jmp" );
dtb << Save( "$temp/bb.jmp" );
// leave table B's filepath in table A
dta << SetTableVariable("path to B", dtb<<GETPATH></GETPATH>Stockage des tables de données sous forme de métadonnées (variables de table) JSLLes variables de table sont utilisées pour stocker des métadonnées dans une table de données ( Documentation JSL , doc général )
Cependant, ils semblent être limités aux variables en tant que chaînes uniquement (voir le code ci-dessous).
Quelle serait la meilleure option pour stocker une table de données en tant que variable de table ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_metadata = Open( "$SAMPLE_DATA/Solubility.jmp" );
dt << Set Table Variable( "dt_user", dt_metadata );
close(dt_metadata);
dt_recovered = dt << Get Table Variable("dt_user");
show(dt_recovered);
show(Is String(dt_recovered));
//dt_recovered = "Solubility";
//Is String(dt_recovered) = 1;Modélisation statistique avancéeAutomatisation et scriptFusion et nettoyage des donnéesPersonnalisation de masseRe : Stockage des tables de données en tant que métadonnées (variables de table) JSLPour les colonnes, un utilisateur peut spécifier les propriétés des colonnes - et il existe même une possibilité de définir des propriétés définies par l'utilisateur.
Que diriez-vous d'un cadre similaire pour les tableaux ?
Voici un souhait :
Informations générales sur le tableau