Neue Spalte mit Variablen erstellen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Ich versuche, eine neue Spalte mit Formel zu erstellen, die durch 2 Variablen wie folgt dargestellt wird:
dt << New Column("myNewColumn", Numeric, Continuous, Formula(:Ceiling( XXColumn / Size) * Size));
Wo:
XXSpalte ist einer der Spaltennamen in dt, ausgewählt im Spaltendialog
Größe = numerischer Wert aus dem Spaltendialog
Mein Versuch führte zu einer neuen Spalte mit Formel ohne Wert als Formel wie unten erstellt:
Decke (Spalte (XXSpalte) / Größe) * Größe
ohne es tatsächlich zuzuweisen.
Irgendeine Idee, wie ich das bewerkstelligen kann?
Betreff: Neue Spalte mit Variablen erstellenNochmals vielen Dank, MS. Ich werde dies zur Kenntnis nehmen.
Betreff: Neue Spalte mit Variablen erstellenSoweit ich das Lesen Ihres Codes erkennen konnte, bezieht sich f_Bin auf eine Spalte, während n_Bin eine Zeichenfolge ist, was der Datentyp ist, der hier am sichersten zu verwenden ist.
Betreff: Neue Spalte mit Variablen erstellenEndlich ist die Magie passiert !!!
hier ist der code, den ich verwendet habe..
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(:Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)<< eval formula" )) );
Danke MS für die Anleitung; Was ist der Unterschied zwischen f_bin und n_bin, den ich verwendet habe?
Betreff: Neue Spalte mit Variablen erstellenVersuchen Sie, n_Bin direkt anstelle von f_Bin zu verwenden:
Bewertung ( Analysieren ( Eval-Einsatz ( "col << Setze Formel(Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)" )) ) ;
Betreff: Neue Spalte mit Variablen erstellenEs hat nicht funktioniert. Vielleicht sollte ich erklären, was ich tue, und meinen Code einfügen.
Schritt 1: Sammeln Sie Eingaben aus dem Spaltendialogfeld
Schritt 2: Erstellen Sie eine Zusammenfassungstabelle mit Min, Mittelwert, Max für die ausgewählte Spalte + Standardspalte
Schritt 3: Erstellen Sie eine neue Spalte für die Decke
Schritt 4: Zeichnen Sie mit dem Graph Builder
Code:
dt0 = aktuelle Datentabelle ();
FN = dt0 << Namen abrufen;
r = Spaltendialog (
Bin = ColList( "X, Klassierung nach", Max Col( 1 ) ),
Overlay = ColList( "Gruppieren nach / Overlay by", Max Col( 1 ) ),
Split = ColList( "Y, Response",Max Col( 5 ) ),
Vergleich = ColList( "X-Achse oben", Max Col( 1 ) ),
HList( "Bin-Größe: ", BinSize = EditNumber( .1 ) ),
);
Bin = r["Bin"];
Überlagerung = r["Überlagerung"];
Split = r["Split"];
Vergleichen = r["Vergleichen"];
BinSize = r["BinSize"];
dts = dt0 << Zusammenfassung(
Group(:Fixed, column(dt0,Overlay), column(dt0,Compare) ),
Mittelwert ( : Ausbeute ),
Min ( Spalte (dt0,Bin) ),
Mittelwert(Spalte(dt0,Bin) ),
Max ( Spalte (dt0,Bin) ),
Min (Spalte(dt0,Split[1]) ),
Mittelwert(Spalte(dt0,Split[1]) ),
Max (Spalte(dt0,Split[1]) ),
Min (Spalte(dt0,Split[2]) ),
Mittelwert(Spalte(dt0,Split[2]) ),
Max (Spalte(dt0,Split[2]) ),
Min (Spalte(dt0,Split[3]) ),
Mittelwert(Spalte(dt0,Split[3]) ),
Max (Spalte(dt0,Split[3]) ),
Min (Spalte(dt0,Split[4]) ),
Mittelwert(Spalte(dt0,Split[4]) ),
Max (Spalte(dt0,Split[4]) ),
Min (Spalte(dt0,Split[5]) ),
Mittelwert(Spalte(dt0,Split[5]) ),
Max (Spalte(dt0,Split[5]) ),
Format des Statistikspaltennamens ( "column stat" ),
);
dts << Satzname (FN || "Zusammenfassung");
n_Bin = Bin[1]||" Mittelwert";
f_Bin = Spalte (dts, n_Bin);
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(Ceiling( ^f_Bin^ / ^BinSize^) * ^BinSize^)" )) );
Betreff: Neue Spalte mit Variablen erstellenNein. Eval Formula soll meines Wissens gleichwertig sein.
Versuchen Sie, die neue Spalte zu trennen und die Formel in separate Ausdrücke zu setzen:
dt = Offen ( "$SAMPLE_DATA/Große Klasse.jmp" ) ;
Spalten = Spaltendialog (
Spalte1 = ColList ( "X" , Max Kol ( 1 ) , Datentyp ( numerisch ) ) ,
Spalte2 = ColList ( "Y" , Max Kol ( 1 ) , Datentyp ( numerisch ) )
) ;
XXSpalte = Spalten [ "Spalte1" ][ 1 ] << Namen bekommen ;
Größe = Spalten [ "Col2" ][ 1 ] << Namen bekommen ;
Kol = dt << Neue Spalte ( "meineNeueSpalte" , Numerisch , Kontinuierlich ) ;
Bewertung ( Analysieren ( Eval-Einsatz ( "col << Set Formula(Ceiling( ^XXColumn^ / ^Size^) * ^Size^)" ) ) ) ;
Kol << eval-Formel ;
Betreff: Neue Spalte mit Variablen erstellenEs funktioniert nicht. Das Ergebnis immer noch dasselbe.
In JSL, Anwenden-Schaltfläche == ? wissen Sie?
Betreff: Neue Spalte mit Variablen erstellenProbieren Sie <
Bewertung ( Analysieren ( Eval-Einsatz ( "dt << Neue Spalte(\!"meineNeueSpalte\!", Numerisch, Kontinuierlich, Formel(Ceiling( ^XXColumn^ / ^Size^) * ^Size^), < ) ) ) ;
Betreff: Neue Spalte mit Variablen erstellenmeins ist JMP8.0.0 Windows
mit oder ohne es immer noch das gleiche. T_T
Betreff: Neue Spalte mit Variablen erstellenNein, das war nicht zu erwarten. Bei mir (JMP 10 für Mac) funktioniert es, ohne auf "Übernehmen" zu klicken. Es gab einen versehentlichen Doppelpunkt vor "Decke ...", der von Ihrem ursprünglichen Code übrig geblieben ist (ich habe jetzt meinen obigen Code bearbeitet). Vielleicht hilft es, das zu löschen.
Betreff: Neue Spalte mit Variablen erstellenDanke MS.
Die neue Spalte, die mit der richtigen Formel erstellt wurde. Aber die Zeilen sind leer. Ich muss zum Formelabschnitt auf der Benutzeroberfläche gehen und auf Anwenden klicken, dann werden nur Eingabeaufforderungen angezeigt.
wird es erwartet?
Betreff: Neue Spalte mit Variablen erstellenVariablen in Formeln werden bei der Erstellung nicht ausgewertet und sollten daher wörtlich ausgedrückt werden. Eine Möglichkeit, dies zu umgehen, besteht darin, Zeichenfolgen zu manipulieren und zu analysieren.
Beispiel:
dt = Offen ( "$SAMPLE_DATA/Große Klasse.jmp" ) ;
Spalten = Spaltendialog ( Spalte1 = ColList ( "X" , Max Kol ( 1 ) , Datentyp ( numerisch ) ) , Spalte2 = ColList ( "Y" , Max Kol ( 1 ) , , Datentyp ( numerisch ) ) ) ;
XXSpalte = Spalten [ "Spalte1" ][ 1 ] << Namen bekommen ;
Größe = Spalten [ "Col2" ][ 1 ] << Namen bekommen ;
Bewertung ( Analysieren ( Eval-Einsatz ( "dt << Neue Spalte(\!"meineNeueSpalte\!", Numerisch, Kontinuierlich, Formel(Ceiling( ^XXColumn^ / ^Size^) * ^Size^))" ) ) ) ;