Come eseguire lo script di una colonna aggregata da un elenco variabile di riferimenti di colonnaHo un elenco di colonne che devo aggregare automaticamente. Attualmente, quello che sto provando è qualcosa del genere, che non sta dando alcun risultato.
cols = {:col1, :col2, :col3}
Eval(Eval Expr(
dt << New Column(
Formula(Minimum(Expr(cols))
)
)Ho anche provato a generarlo in modo interattivo e a salvare la formula della colonna. Funziona, ma mi dà
Minimum(:col1, :col2, :col3)
che non sono sicuro di come ricreare in JSL.
Condivisione e comunicazione dei risultatiRi: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaEcco due metodi che potresti provare:
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>Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaImmagino come sia l'elenco dei nomi delle colonne iniziali, ma se si tratta solo di un elenco non quotato di nomi di colonne, lo script seguente è un esempio di un modo per elaborarlo
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 || ")));" ) );Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaIl mio elenco effettivo è definito tramite la corrispondenza regex in base all'input dell'utente. Lo script scorre l'elenco dei nomi di colonna della tabella dati e inserisce quelli corrispondenti in un elenco.
For Each ({col}, colNames,
If (condition... Insert Into(list, :Column(col))
)Ho provato a cambiare la sintassi in :(Colonna(col)) ma ciò ha portato a un elenco di elementi mancanti piuttosto che a quello che avevo ricevuto in precedenza ( {Colonna(col1), Colonna(col2), ...} ). Lo stesso vale per Come Colonna(col) .
Sto usando JMP 16.
Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaControlla la definizione dell'elenco e assicurati che il ":" sia specificato davanti a ogni nome di colonna.
Quale versione di JMP stai usando?
Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaGrazie per la risposta rapida! Ho provato questo, ma sembra lasciare la formula della colonna irrisolta (come Minimum(Eval(cols)) ).
Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaCIAO,
Prova questa sintassi:
Names default to Here (1);
dt = Current Data Table ();
cols = {:col1, :col2, :col3};
dt << New Column("TEST", numerical, continuous, << Formula(Minimum(Eval(cols))));
Migliore,
ST
Ri: Come scrivere una colonna aggregata da un elenco variabile di riferimenti di colonnaQuesto potrebbe dare qualche idea Utilizzo dell'elenco di colonne nelle formule
Visualizza altro...