So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenIch habe eine Liste von Spalten, die ich automatisch aggregieren muss. Was ich derzeit versuche, ist so etwas, was zu keinen Ergebnissen führt.
cols = {:col1, :col2, :col3}
Eval(Eval Expr(
dt << New Column(
Formula(Minimum(Expr(cols))
)
)Ich habe auch versucht, dies interaktiv zu generieren und die Spaltenformel zu speichern. Es funktioniert, aber es gibt mir
Minimum(:col1, :col2, :col3)
Ich bin mir nicht sicher, wie ich es in JSL neu erstellen soll.
Ergebnisse teilen und kommunizierenBetreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenHier sind zwei Methoden, die Sie ausprobieren könnten:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << Get Column Names( "String" );
col list = {};
For Each( {col}, cols,
If( Ends With( col, "t" ), Insert Into( col list, As Name( col ) ) )
);
Eval( Eval Expr(
dt << New Column( "NEW_COL", "Numeric", <<SET formula=""></SET>Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << Get Column Names( "String" );
col list = Expr( Min() );
For Each( {col}, cols,
If( Ends With( col, "t" ), Insert Into( col list, As Name( col ) ) )
);
Eval( Eval Expr(
dt << New Column( "NEW_COL", "Numeric", <<SET formula=""></SET>Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenIch vermute, wie Ihre anfängliche Liste mit Spaltennamen aussieht, aber wenn es sich nur um eine Liste von Spaltennamen ohne Anführungszeichen handelt, ist das folgende Skript ein Beispiel für eine Möglichkeit, sie zu verarbeiten
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/SAS/JMPPRO/15/Samples/Data/Big Class.jmp" );
colNames = dt << get column names;
theList = {};
For Each( {col}, colNames,
Show( col );
If( As Column( col ) << get data type == "Numeric",
Insert Into( theList, As Column( col ) << get name )
);
);
theString = Concat Items( theList, ",:" );
Eval( Parse( "dt << new column(\!"test\!",formula(minimum(:" || thestring || ")));" ) );Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenMeine eigentliche Liste wird durch Regex-Abgleich basierend auf Benutzereingaben definiert. Das Skript durchläuft die Liste der Spaltennamen der Datentabelle und fügt passende Spaltennamen in eine Liste ein.
For Each ({col}, colNames,
If (condition... Insert Into(list, :Column(col))
)Ich habe versucht, die Syntax zu ändern :(Spalte(col)) aber das führte zu einer Liste fehlender Artikel und nicht zu dem, was ich zuvor erhalten hatte ( {Spalte(Spalte1), Spalte(Spalte2), ...} ). Das Gleiche gilt für Als Spalte(col) .
Ich verwende JMP 16.
Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenBitte überprüfen Sie Ihre Listendefinition und stellen Sie sicher, dass vor jedem Spaltennamen das „:“ angegeben ist.
Welche JMP-Version verwenden Sie?
Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenDanke für die schnelle Antwort! Ich habe es versucht, aber es scheint, dass die Spaltenformel ungelöst bleibt (als Minimum(Eval(cols)) ).
Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenHallo,
Probieren Sie diese Syntax aus:
Names default to Here (1);
dt = Current Data Table ();
cols = {:col1, :col2, :col3};
dt << New Column("TEST", numerical, continuous, << Formula(Minimum(Eval(cols))));
Am besten,
TS
Betreff: So erstellen Sie ein Skript für eine Aggregatspalte aus einer Variablenliste von SpaltenreferenzenDas könnte einige Anregungen geben Verwendung einer Spaltenliste in Formeln
Mehr sehen...