腳本連接列你好
我編寫了一個腳本,用於連接“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") << 公式(Char(:TEST_NAME 10 || " " ||
:TEST_NAME 11 || “”||
:TEST_NAME 12 || “”||
:TEST_NAME 13 || “”||
:TEST_NAME 14 || “”||
:TEST_NAME 15)
);
資料混合與清理視窗回覆:腳本連線列如果你有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!!!!
回覆:腳本連線列這要求感興趣的列是字元列,您有 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), " "))
);
));