スクリプト連結列こんにちは
列「PIN_NAME」の列を連結するためのスクリプトを作成しました
私の問題は、一定量の列がないことです。
Test_name 10 から Test_name 15 まで列を連結する必要がありますが、Test_name 10 から Test_name 13 まで (たとえば)
スクリプトが存在しない Test_Name 14 と Test_Name 15 を連結しようとするため、エラーが発生しました。
この問題について私を助けてもらえますか?

Column(dt_split,"PIN_NAME") << Formula(Char(:TEST_NAME 10 || " " ||
:TEST_NAME 11 || " " ||
:TEST_NAME 12 || " " ||
:TEST_NAME 13 || " " ||
:TEST_NAME 14 || " " ||
:TEST_NAME 15)
);
スクリプティングウィンドウズRe: スクリプト連結列これには、対象の列が文字列であり、JMP16 があり、列が正規表現 "Column \d{2}" を渡す必要があります。
一般的なアイデア
- 列名のリストを取得
- いくつかのフィルターを使用して、関心のある列名のリストを作成します (私は正規表現を使用しています)
- 2 のリストを使用して数式の式を作成します。
- Eval(EvalExpr()) を使用して、数式で新しい列に追加します
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: 列を連結するスクリプトJmp17 があれば、物事はずっと簡単になります。
次に、新しい数式列から関数を呼び出すことができます。文字型の列に制限はありません。:)
Data Table( "Big Class" ) << New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :name, :age, :sex, :height, :weight )
);
さらに良いことに、右クリックの[新しい数式列]メニューで無効になっているバリアントも使用できます。
新しい数式列メニュー - バリアントを無効にしない
数値エントリの連結や文字列エントリのカウントなど:
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 )
);
右クリックの「新しい数式列」メニューで無効になっています- ARGH !!!!