Lo script concatena le colonneCiao
Ho scritto uno script per concatenare le colonne nella colonna "PIN_NAME"
Il mio problema è che non ho una quantità costante di colonne.
Dovrei concatenare la colonna da Test_name 10 fino a Test_name 15, ma alcune volte ho solo Test_name 10 fino a Test_name 13 (per esempio)
e ho ricevuto un errore perché lo script tenta di concatenare Test_Name 14 e Test_Name 15 che non esistono.
Potete aiutarmi con questo problema?

Column(dt_split,"PIN_NAME") << Formula(Char(:TEST_NAME 10 || " " ||
:TEST_NAME 11 || " " ||
:TEST_NAME 12 || " " ||
:TEST_NAME 13 || " " ||
:TEST_NAME 14 || " " ||
:NOME_PROVA 15)
);
ScriptingfinestreRi: Script concatena colonneCiò richiede che le colonne di interesse siano colonne di caratteri, che tu abbia JMP16 e che le colonne passino regex "Column \d{2}"
Idea generale
- Ottieni l'elenco dei nomi delle colonne
- Crea un elenco di nomi di colonne che ti interessano utilizzando un filtro (sto usando regex)
- Costruisci l'espressione per la formula con l'elenco da 2.
- Usa Eval(EvalExpr()) per aggiungerlo alla nuova colonna con una formula
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(0),
Compress File When Saved(1),
New Column("Column 1", Character, "Nominal", Set Values({"a"})),
New Column("Column 2", Character, "Nominal", Set Values({"b"})),
New Column("Column 10", Character, "Nominal", Set Values({"c"})),
New Column("Column 11", Character, "Nominal", Set Values({"d"})),
New Column("Column 12", Character, "Nominal", Set Values({"e"}))
);
col_names = dt << Get Column Names(Character, "String");
list_expr = Expr(List());
For Each({col_name}, col_names,
If(!IsMissing(Regex(col_name, "Column \d{2}")),
Insert Into(list_expr, Name Expr(AsColumn(Column(dt, col_name))));
);
);
// show(Name Expr(list_expr));
Eval(EvalExpr(
dt << New Column("PINNAME", Character, Nominal,
Formula(Concat Items(Expr(list_expr), " "))
);
));Re: Script concatena colonneSe hai Jmp17, le cose saranno molto più semplici.
Quindi puoi chiamare una funzione da Nuova colonna formula - nessuna restrizione alle colonne con carattere di tipo:)
Data Table( "Big Class" ) << New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :name, :age, :sex, :height, :weight )
);
Ancora meglio: puoi persino utilizzare le varianti disattivate nel menu Nuova colonna formula accessibile cliccando con il tasto destro.
nuovo menu colonna formula - non disabilitare le varianti
come la concatenazione per le voci numeriche e il conteggio delle voci della colonna dei caratteri:
Data Table( "Big Class" ) << New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :height, :weight )
);
);
Data Table( "Big Class" ) << New Formula Column(
Operation( Category( "Aggregate" ), "Count" ),
Columns( :name ),
Group By( :sex )
);
disabilitato nel menu Nuova colonna formula cliccando con il tasto destro - ARGH !!!!