Re: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLhttps://community.jmp.com/t5/Discussions/difference-between-set-and-new-table-variable-strange-results-in/mp/429212/highlight/true#M67868 aus Unterschied zwischen gesetzter und neuer Tabellenvariable - seltsame Ergebnisse beim Schreiben von Zeichenfolgen?beschreibt vier verschiedene Funktionen, set/get/new table variable und dt:tablevar und empfiehlt die Verwendung von set table variable und dt:tablevar.
Re: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLDie zu speichernde Variable ist eine Datentabelle. Die dt:tablevar scheint in diesem Fall nicht zu funktionieren.
Re: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLTabellenvariablen sind Zeichenfolgen.
Wenn Sie möchten, dass dt_recovered danach gleich ist, müssen Sie dt_metadata in die Zeichenkettendarstellung des Ausdrucks konvertieren, wenn Sie ihn in der Tabellenvariablen speichern. Sie müssen es dann parsen, wenn Sie es wieder aus der Variablen herausholen.
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: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLHier sind drei Beispiele, die die Daten für Tabelle B in Tabelle A einbetten. Ich bevorzuge das dtb3-Beispiel für Tabellen mit angemessener Größe. Das dtb4-Beispiel ist das, was Sie meiner Meinung nach beschrieben haben. Es ist vielleicht besser für einen riesigen B-Tisch, aber für alle anderen ist es sehr undurchsichtig. dtb5 kombiniert die beiden Ideen.
// 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: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLOder wenn Sie einen Link hinterlassen möchten, anstatt die Daten einzubetten, verwenden Sie vielleicht den Dateinamen für die verknüpfte Tabelle:
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>Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLTabellenvariablen werden zum Speichern von Metadaten in einer Datentabelle verwendet ( JSL-Dokument , Allgemeiner Dok )
Sie scheinen jedoch nur auf Variablen als Zeichenfolgen beschränkt zu sein (siehe Code unten).
Was wäre die beste Option, um eine Datentabelle als Tabellenvariable zu speichern?
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;Erweiterte statistische ModellierungAutomatisierung und SkripterstellungDatenmischung und -bereinigungMassenanpassungBetreff: Speichern von Datentabellen als Metadaten (Tabellenvariablen) JSLFür Spalten kann ein Benutzer Spalteneigenschaften angeben – und es besteht sogar die Möglichkeit, benutzerdefinierte Eigenschaften zu definieren.
Wie wäre es mit einem ähnlichen Framework für Tabellen?
Hier ist ein Wunsch:
Allgemeine Informationen zur Tabelle