Mehrere Datentabellen, die im selben Skript erstellt wurdenHallo alle,
Ich versuche, eine zweite Datentabelle aus einer erstellten ersten Datentabelle in demselben Skript zu erstellen. Ist das möglich?
Beispiel:
dt_= Open(path_pst);
//Erste Datentabelle
start = Neue Tabelle("W",
Neue Spalte("S"),
Neue Spalte("Z"),
Neue Spalte("X"),
Neue Spalte("Y"),
Neue Spalte("E"),
Neue Spalte("W"),
Neue Spalte("S"),
Zeilen hinzufügen(545)
);
//Einige Berechnungen
for(i=1,i<=545,i++,
W:B[i] = ((dt_ - dt_*60)/8;
W:S[i] = dt_[i];
W:X[i] = dt_[i]/10000000;
W:Y[i] = dt_[i]/10000000;
W:E[i] = dt_[i];
W:W[i] = dt_[i];
W:S[i] = dt_[i];
);
//Erstellen einer zweiten Datentabelle
start = Neue Tabelle("WIWM",
Neue Spalte("Si"),
Neue Spalte("Ba"),
Neue Spalte("X1"),
Neue Spalte("Y1"),
Neue Spalte("En"),
Neue Spalte("Wa"),
Neue Spalte("M"),
Zeilen hinzufügen(109)
);
//Berechnung für die zweite Datentabelle basierend auf der ersten erstellten Datentabelle
für (i=1, i<=109,i++,
WIWM:Ba[i] = (W:B[i+109]+W:B[i+218]+W:B[i+327]+W:B[i+436])/4;
WIWM:Si[i] = W:S[i];
WIWM:X1[i] = W:X[i];
WIWM:Y1[i] = W:Y[i];
WIWM:En[i] = W:E[i];
WIWM:Wa[i] = W:W[i];
);
Nachdem die erste Datentabelle wie erwartet geliefert wurde, enthält die zweite Datentabelle die erwarteten Zeilennummern, ist jedoch ausgeblendet (damit die Bedingung nicht ausgeführt wird).
Wenn ich das Skript trenne, führe ich in einem ersten Teil die erste Berechnung durch und speichere sie. Nachdem ich einen zweiten Teil mit der gespeicherten Datentabelle ausgeführt habe, werde ich meine Berechnung für die zweite Datentabelle durchführen.
Danke.
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenhttps://community.jmp.com/t5/Uncharted/What-is-the-JSL-Matrix/ba-p/33349 ist eine kurze Einführung. Es gibt auch Dokument:
http://www.jmp.com/support/help/Matrices.shtml
http://www.jmp.com/support/help/Matrix_Functions.shtml
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenKannst du mir ein Beispiel geben?
Danke
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenDa Sie mit Matrizen arbeiten, stelle ich dann die Frage: Warum geben Sie die Daten in eine Datentabelle ein und behandeln die Datentabelle dann so, als wäre sie ein Matrixhalter?Alle Schritte, die Sie in Ihrem Skript ausführen, könnten mithilfe von Matrizen einfacher und schneller in offenem JSL ausgeführt werden.
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenHallo,
Vielen Dank für eine kurze Wiederholung.
Ja, ich arbeite mit einer Matrix, die erste besteht aus n Spalten und 545 Zeilen (ich kann die Funktion „Spaltennummer“ verwenden, aber die Nummer muss für Sie sichtbar sein)
Aus der ersten tatsächlichen Datentabelle muss ich filtern und eine neue Datentabelle erstellen – die „erste“ mit 545 Zeilen und einer Matrix.
Danach muss ich eine weitere Berechnung von der „ersten“ durchführen und schließlich die „zweite“ mit 109 Zeilen und auch Martix erhalten.
Danke.
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenDanke Jim. Ich füge dies der Liste der Dinge hinzu, die weiter untersucht werden müssen ... Genau wie Sie hatte ich keine Ahnung, dass es so etwas gibt.
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenIhr Drehbuch hat mir etwas Neues beigebracht.Ich konnte keine Dokumentation dazu finden, aber Ihr Skript zeigt, dass es funktioniert ... irgendwie.
In Ihrem Code verweisen Sie auf Zeilen und Spalten in den Datentabellen
Datentabellenname: Spaltenname[Zeile]
Also, wenn Sie angeben
Start = Neue Tabelle( „W“, Neue Spalte( „S“), ..........
Sie verweisen auf die Spalte „S“ in Zeile „5“ als
W:S[5]
und anscheinend funktioniert das.Später in Ihrem Skript versuchen Sie jedoch, dieselbe Logik für die von Ihnen benannte Datentabelle zu verwenden
Start = Neue Tabelle( „WIWM“, Neue Spalte( „Si“).........
und Sie versuchen, auf Ihre Datentabelle mit dem Namen W zurückzuverweisen
WIWM:SI[1] = W:S[1];
und das funktioniert nicht.
Das Problem besteht darin, dass die richtige Methode zum Einrichten einer Datentabellen-Namespace-Referenz darin besteht, den Namespace-Namen mithilfe einer Zuweisungsanweisung zuzuweisen, nicht den Namen der Datentabelle.Meine neue Erkenntnis ist, dass JMP offenbar den Datentabellennamen als Namensraum verwendet, bis eine neue Datentabelle erstellt wird, und dann die Verknüpfung zum Datentabellennamen-Namensraum verliert.
Die Quintessenz ist, dass Ihr Code gut funktioniert, wenn Sie die Zeile ändern
Start = Neue Tabelle("W",
Zu
W = Neue Tabelle("W",
Und
Start = Neue Tabelle("WIWM",
Zu
WIWM = Neue Tabelle("WIWM",
Schließlich öffnen Sie eine Datei und verweisen darauf als
dt_ = open(path_pst);
Was öffnen Sie?Ich gehe davon aus, dass es sich um eine Matrix handelt.Könnten Sie sich diesbezüglich bitte an mich wenden, damit ich besser verstehen kann, was wirklich in Ihrem Code vor sich geht?
Betreff: Mehrere Datentabellen, die im selben Skript erstellt wurdenVerwenden Sie die Datentabelle Objekt von der NewTable zurückgegeben Funktion um festzustellen, in welcher Tabelle sich eine Variable befindet. Die Tische Name wird nicht für die Festlegung des Gültigkeitsbereichs der Variablen verwendet. Die dritte Aufgabe verwendet alle drei Tabellen. Ich habe alles eindeutig benannt, aber das ist beim Scoping nicht erforderlich. dt3: , legt beispielsweise fest Umfang oder die Orte, an denen nach der folgenden Variablen gesucht werden soll, in diesem Beispiel z.
dt1 = New Table( "table name A", New Column( "x", values( [1 2 3] ) ) );
dt2 = New Table( "table name Squares", New Column( "y" ), addrows( 3 ) );
dt3 = New Table( "table name Cubes", New Column( "z" ), addrows( 3 ) );
For( i = 1, i <= N Rows( dt1 ), i++,
dt2:y[i] = dt1:x[i] ^ 2;
dt3:z[i] = dt1:x[i] * dt2:y[i];
);
small table of Cubessmall table of Cubeskleiner Tisch mit Würfeln