Tabelle ist leer, wenn referenziert wirdHallo alle!
Ich habe versucht, eine Spalte in einer generierten Datentabelle auszuwählen und diese Spalte in eine neue Datentabelle umzuwandeln. Nachfolgend mein Code:
//part 1: generate a data table<BR />ret = New Table( title,
Add Rows (rowNum),
New Column( "P", Expression, "Continuous", Formula( pmatrix ) ),
New Column( "X(n)",
Expression,
"None",
Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :p</img> ) ),
Set Selected,
),
New Column( "steady state",
Expression,
"None",
Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),
),
New Column( "States", Character, Values( names ) ),
);
// part 2: select column X(n) and transform it into a new table
<STRONG>mat = Column(ret,"X(n)")[1];
show(mat);</STRONG>
For(i = 2, i <= N Rows(ret), i++,
V Concat To(mat,Column(ret,"X(n)")[i]);
);
table = As Table(mat);
names = Column(ret, "States") << get values;
For(i = 1, i <= N Col(table), i++,
Column(i) << Set Name( names[i] );
);
Als ich die beiden Teile separat getestet habe, indem ich die Ergebnistabelle in Teil 1 gespeichert und dann Teil 2 ausgeführt habe, funktioniert es. Aber ich möchte die Tabelle in Teil 1 nicht jedes Mal speichern, bevor Teil 2 ausgeführt wird, also füge ich sie zusammen. Das zusammengeführte Skript funktioniert jedoch nicht. In diesem Fall enthält die von Teil 2 zurückgegebene Tabelle nur fehlende Werte (Empty()).
Ich füge "show(mat);" hinzu. im Skript, um zu sehen, was passiert ist, und es zeigt "mat = Empty();" im Protokoll. Der erwartete Wert von mat sollte ein Vektor sein, wie in jeder Zeile von Spalte X(n) der Datentabelle in Teil 1.
Ich weiß nicht, was schief gelaufen ist. Jede Hilfe wäre willkommen!
Betreff: Tabelle ist leer, wenn referenziert wirdDanke für Ihre Antwort!Betreff: Tabelle ist leer, wenn referenziert wirdUnd danke für den Bericht; Die Spaltenfunktion führt <
Betreff: Tabelle ist leer, wenn referenziert wirdwait(n) ist nicht die beste Lösung; Es ist schwer zu wissen, ob n groß genug ist. JMP wertet die Tabellenformeln im Hintergrund aus. Der beste Weg, um sicherzustellen, dass sie bewertet haben, ist
ret << RunFormulas;
nach dem Aufbau des Tisches. Es wertet die Formeln der Tabelle schneller aus, als auf sie zu warten.
Betreff: Tabelle ist leer, wenn referenziert wirdIch habe eine Lösung gefunden, die mein Problem lösen kann: Das Hinzufügen von "wait(1)" zwischen den beiden Teilen funktioniert. (Hinweis:
https://community.jmp.com/t5/Discussions/Add-new-column-with-formula-to-data-table-at-certain-position/td-p/14602).
aber ich verstehe nicht warum das funktioniert... Gibt es eine andere Möglichkeit, dieses Problem ebenfalls zu lösen?
Betreff: Tabelle ist leer, wenn referenziert wirdEs tut uns leid. Ich weiß nicht, warum etwas mit dem Format schief gelaufen ist. Die erste Zeile des Skripts ist kommentiert...
ret = New Table(
Add Rows (rownum),
New Column( "P", Expression, "Continuous", Formula( ptable << get as matrix ) ),
New Column( "X(n)",
Expression,
"None",
Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :p</img> ) ),
Set Selected,
),
New Column( "steady state",
Expression,
"None",
Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),
),
New Column( "States", Character, Values( names ) ),
);
Betreff: Tabelle ist leer, wenn referenziert wirdIch sehe den Verweis auf die Variable "ret" nicht.In der zweiten Hälfte des Codes wird ret verwendet, aber nicht in der 1. Hälfte......