Spalten erstellenOkay, das klingt wahrscheinlich nach einer wirklich einfachen Frage, aber ich tue mich schwer damit.
Ich habe also diese Daten, die wie folgt formatiert sind: (Zahl)|(Name)|(Zahl)|(Name)|(Zahl)... usw. Nun, ich habe eine Schleife, die die Zeichenfolge ansieht und die Informationen analysiert das Trennzeichen ('|') und nimmt dann jeden zweiten Eintrag in dieser neuen Liste (alle "Namen") und fügt nur diese in die neue Liste ein. Diese neue Liste wird dann verwendet, um eine ganze Reihe von Spalten zu erstellen. Was ich entdeckt habe, ist, dass die numerischen Werte, die ich dann aus dieser Zeichenfolge verwende und in jede Spalte platziere, technisch gesehen ein Zeichen sind. Wenn ich also versuche, eine Formel in der Spalte zu verwenden, wird einfach alles punktiert. Was ich tun muss, ist eine neue Spalte zu erstellen und die Formel für diese Spalte zu verwenden. Meine Frage ist: Ich habe bereits eine Liste aller gewünschten Spaltennamen. Gibt es eine Möglichkeit, neue Spalten mit denselben Namen zu erstellen und einfach die ursprünglichen Spalten, die ich erstellt habe, durch die Spalten zu ersetzen, die das Format verarbeiten können?
Diese Frage könnte wirklich seltsam sein, hier ist ein Teil meines Skripts, das die Analyse/Spaltenerstellung übernimmt:
Liste = {};
// Die ersten Zeilen von :Test_Result durchlaufen, um die Pin-Namen zu erhalten
one_test_result_list = words(column(dt2,"Test_Result")[1], "|");
For(j = 1, j <= nitems(one_test_result_list)/2, j++,
Assign(List, one_test_result_list[j*2]);
);
// Erstellen Sie neue Spalten der Pin-Liste
For(g = 1, g <= nitems(List), g++,
dt2 << New Column(List, Numeric, Continuous, Format("Best",12));
);
// Iteriere durch die Zeilen von :Test_Result (wo der String gespeichert ist)
Für (i = 1, i <= nrows(dt2), i++,
one_test_result_list = words(column(dt2,"Test_Result") , "|");
For(k = 1, k < Punkte(one_test_result_list)/2, k++,
// Speichern Sie alle neu geparsten Ergebnisse in neuen Werten
Spalte(dt2, Liste) = num(one_test_result_list[(k*2)+1]);
);
);
Das funktioniert perfekt, ich habe gerade von der ganzen Sache mit dem Erstellen neuer Spalten erfahren ... Ich möchte, dass sie die Spaltennamen haben, die ich ihnen bereits gegeben habe, ich möchte nur in der Lage sein, ihnen das Format zuzuweisen, ohne dass jeder Wert zu einem Punkt wird. (Ich habe dies an einer neuen Spalte getestet und die Werte ändern sich tatsächlich korrekt ....)
Ich danke dir sehr!
Betreff: Spalten erstellenEntschuldigung, das hatte ich komisch formuliert. In meiner Zeichenfolge ignoriere ich die erste Zahl (weil sie nutzlos ist) und dann ist es ein Name, gefolgt von dem Wert für diesen Namen. Ich erstelle eine neue Liste, die nur alle Namen sammelt, und dann verwende ich diese Liste, um alle neuen Spaltennamen zu füllen. Ich setze die Spalten als numerische Werte und fülle die Spalten sogar mit ihrem entsprechenden numerischen Wert als Zahl. Wie in diesem Code zu sehen ist, den ich angehängt habe (insbesondere die fettgedruckten Zeilen):
// Erstellen Sie neue Spalten der Pin-Liste
For(g = 1, g <= nitems(List), g++,
dt2 << New Column(List, Numeric, Continuous, Format("Best",12));
);
Für (i = 1, i <= nrows(dt2), i++,
one_test_result_list = words(column(dt2,"Test_Result") , "|");
For(k = 1, k < Punkte(one_test_result_list)/2, k++,
// Speichern Sie alle neu geparsten Ergebnisse in neuen Werten
Spalte(dt2, Liste) = num(one_test_result_list[(k*2)+1]);
);
);
Obwohl ich den Wert als Zahl und die Spalte für einen numerischen Wert bezeichne, werden die Werte in dieser Spalte immer dann geändert, wenn ich irgendeine Operation für diese Spalte durchführe (dh die Spalte zu absoluten Werten mache). . Aber wenn ich eine neue Spalte erstelle und die Werte in, sagen wir, der ersten Spalte, die ich erstellt habe, nehme und eine Formel für diese Spalte setze, verhält sie sich richtig und zeigt die Operation. Es scheint, dass ich doppelt so viele Spalten erstellen muss, wie ich wirklich brauche, um den Wert zunächst zu speichern, und dann eine weitere Spalte, um eine Formel zu verwenden. Ich kann nicht einfach eine Formel für die erste Spalte verwenden, die ich erstelle. Die Sache ist, ich möchte die Spaltennamen behalten, die ich ursprünglich zugewiesen habe. Ich weiß nicht, warum JMP mich keine Operation an den neuen Spalten durchführen lässt.
Betreff: Spalten erstellen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich bin mir nicht sicher, ob ich Ihr Problem vollständig verstehe, aber " Die numerischen Werte, die ich dann aus dieser Zeichenfolge verwende und in jede Spalte platziere, sind technisch gesehen ein Zeichen. Wenn ich also versuche, eine Formel in der Spalte zu verwenden, wird einfach alles durchgestrichen “ legt einiges nahe …
Der Datentyp einer JMP-Spalte kann als 'Numeric' oder 'Character' definiert werden, um Daten des erforderlichen Typs aufzunehmen, und (über den Dialog 'Column Info...' oder durch Senden der JSL-Nachricht 'myCol << DataType( "Numeric") oder myCol << DataType("Character")') sollten Sie dies so einstellen, wie Sie es möchten. Wenn Sie die Spalte mit Werten füllen, können Sie mit 'Char()' (mit 'Num()') von numerischen in Zeichenwerte (von Zeichen- in numerische Werte) konvertieren. Wenn Sie „Num()“ für einen Textwert verwenden, den JMP nicht als Zahl interpretieren kann, weist es einen fehlenden Wert (ein „.“) zu.