嗨伙计。 我每天都在处理新表(唯一的表名),这些表总是至少有一个公共列标题,我用它来匹配列为了加入。 这变得越来越重复,所以我一直在考虑写一个脚本。
问题:我不想每次都在脚本中指定两个表名加入两张桌子。
我正在寻找一种方法,让脚本自动/半自动选择我想要加入的两个表。 我知道有一种方法可以检索当前选定的表,但是之前选定的表又如何呢? 最好的情况是有一种方法可以检索表名全部当前选择的表,然后继续执行加入对于这些表。
感谢所有的想法和建议! 谢谢!
当然,JMP 会话中只有一个“当前”表。 但你可以这样做:
NamesDefaultToHere(1);
// Make some tables with different numbers of columns
n = 5;
for(t=1, t<=n, t++, NewTable("Table "||Char(t), << addMultipleColumns("Test", Random Integer(5), Character)));
// Function that returns the names of all open tables containing a specified column
tablesWithColumn =
Function({inCol}, {Default Local},
matchingTables = {};
for(t=1, t<=NTable(), t++,
cols = DataTable(t) << getColumnNames("String");
if(Contains(cols, inCol), InsertInto(matchingTables, DataTable(t) << getName));
);
matchingTables;
);
// Try it out
myCol = "Test 3";
NewWindow("Open Tables with Column "||myCol,
PanelBox("Pick Tables to Join",
lb = ListBox(tablesWithColumn(myCol), maxSelected(2));
)
);