Spaltenunterschied – JSL-SyntaxHallo alle,
Wie greife ich über die Spaltenreferenz auf den Inhalt einer Spalte zu? Da sich meine Spaltennamen mit jeder Schleife im Skript ändern, kann ich nicht einfach den Spaltennamen zum Subtrahieren verwenden.
dt ist meine Datentabelle und hat 30 Spalten. Ich möchte eine neue Spalte mit dt[28]-dt[30] erstellen.
Kann mir jemand bei der Syntax helfen?
Ich schätze es wirklich. Danke schön.
Betreff: Spaltenunterschied – JSL-SyntaxDieses Beispiel zeigt, wie Variablen zum dynamischen Definieren von Spalten verwendet werden können, wenn 1) die Matrixnotation für Tabellen in JMP 13 verwendet wird oder 2) eine Formel festgelegt wird.
dt = New Table("Table Subscripting",
New Column("a", Set Values([1 2 3 4 5])),
New Column("b", Set Values([44 22 77 55 99])),
New Column("c", Set Values([59, 58, 57, 56, 55]))
);
startCol = 1;
endCol = N Col(dt);
// New column with the diff between endCol and startCol can be filled
// 1) with static values using matrix notation (JMP 13),
dt << New Column("Delta");
dt[0, endCol + 1] = dt[0, endCol] - dt[0, startCol];
// 2) or by a Column Formula
// (expression must partly be pre-evaluated if variables are used)
F = Eval Expr(Expr(Column(endCol))[] - Expr(Column(startCol))[]);
dt << New Column("Delta2", Formula(Name Expr(F)));Betreff: Spaltenunterschied – JSL-SyntaxHallo Mark,
Anscheinend kann ich diese Syntax von nicht verwenden
dt<< Neue Spalte( "Delta",
Numerisch,
Formel( Column(dt,startcol)- Column(dt,endcol) )
);
startcol= 28( wird nach einer bestimmten Spalte abgeleitet)
und endCol = ncols( dt );
Da sich die Spaltenanzahl meiner Datentabellen nach jeder Schleife ständig ändert, kann ich keine Zahl verwenden. Gibt es eine andere Möglichkeit?
Betreff: Spaltenunterschied – JSL-SyntaxBedeutet 4 automatisch, dass es das Ende der Tabelle ist? Da sich die Spalten der Datentabelle ständig ändern, kann ich sie verwenden
dt[1::nrow(dt), endcol+1] = dt[1::nrow(dt), startcol] - dt[1::nrow(dt), endcol];
wobei endCol = ncols( kdt ); und startcol= 28( Dies wird nach einer bestimmten Spalte abgeleitet)
Ich versuche, alles dynamisch zu machen.
Ich glaube nicht, dass das funktioniert. Was denkst du über diese Melanie?Betreff: Spaltenunterschied – JSL-SyntaxWenn Sie JMP 13 ausführen, können Sie außerdem mit dt[Zeile, Spalte] eine Datentabelle subskriptieren und Bereiche (1::4) verwenden.
Hier ist ein kurzes Beispiel, das eine neue Spalte hinzufügt und ihre Werte auf Spalte 3 – Spalte 1 setzt:
dt = New Table( "Table Subscripting",
New Column( "a", Set Values( [1 2 3 4 5] ) ),
New Column( "b", Set Values( [44 22 77 55 99] ) ),
New Column( "c", Set Values( [59, 58, 57, 56, 55] ) )
);
dt << New Column( "new column" );
dt[1::nrow(dt), 4] = dt[1::nrow(dt), 3] - dt[1::nrow(dt), 1];
Betreff: Spaltenunterschied – JSL-SyntaxEs gibt mehr als eine Möglichkeit, auf eine Spalte zu verweisen:
- :Name
- Spaltenname" )
- Spalte (Datentabellenreferenz, „Name“)
- Spalte (Index)
- Spalte (Datentabellenreferenz, Index)
Ich vermute, dass die letzten beiden Formulare, die auf der Column()-Funktion basieren, in Ihrem Fall nützlich sein werden.