从高到宽拆分:如何动态地对结果列进行分组?因此,我有一个很大的 dt,要将其从 TALL 拆分为 WIDE。这会产生大量的列,所有列的标题格式均为“Step#_Parameter_Function”。
这些列的数量是变化的,并且无法预测和设置,步骤号或名称也是如此。
我如何才能按步骤号对这些列进行分组?通过某种循环扫描长列表,选出第一个步骤号,然后将其分配给标有“步骤号”的组?
<< Split(
Split By( :recipe_step_id, :parameter_name, :aggregate_function ),
Split( :value ),
Group( :recipe, :equipment_id, :chamber_id, :wafer_scribe, :wafer_process_start_time ),
Output Table( "Wide" ),
Remaining Columns( Drop All ),
Sort by Column Property
);

数据混合和清理大规模定制回复:从高到宽拆分:如何对结果列进行动态分组?这是一个简单的脚本,用于创建一组以字符“NPN”开头的新列

names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNamesList = dt << get column names(string, continuous);
NPNList = {};
for(i=1,i<=nitems(colNamesList),i++,
If(contains(colNamesList[i],"NPN")==1,
insert into(NpNList,colNamesList[i])
)
);
dt << group columns("NPNGroup", NPNList);
回复:从高到宽分割:如何动态地对结果列进行分组?- 请花点时间阅读 JMP 文档库中“帮助”下拉菜单下的“脚本指南”。它将为您提供可用于解决问题(例如您当前询问的问题)的语言结构。
- 下面是一个简单的示例脚本,它创建了找到的列组。请注意,虽然脚本会检查以 XYZ 开头的列,但这里故意没有以 XYZ 开头的列
Names Default To Here( 1 );
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNameList = dt << get column names( string );
NPNList = {};
PNPList = {};
XYZList = {};
// Find matching column names
For( i = 1, i <= N Items( colNameList ), i++,
If(
Left( colNameList[i], 3 ) == "NPN",
Insert Into( NPNList, colNameList[i] ),
Left( colNameList[i], 3 ) == "PNP",
Insert Into( PNPList, colNameList[i] ),
Left( colNameList[i], 3 ) == "XYZ",
Insert Into( XYZList, colNameList[i] )
)
);
// If groups of columns are found, creat JMP groupings
If( N Items( NPNList ) > 0,
dt << select columns( NPNList );
dt << group columns();
);
If( N Items( PNPList ) > 0,
dt << select columns( PNPList );
dt << group columns();
);
If( N Items( XYZList ) > 0,
dt << select columns( XYZList );
dt << group columns();
);回复:从高到宽分割:如何动态地对结果列进行分组?太棒了。最后一个问题。是否可以给它提供一个字符串组列表来运行,查找匹配的列,然后将它们放入各自的组中?
就像以下列表:
以“AAA”、“BBB”、“CCC”等开头的列
然后将它们放入标有 AAA、BBB、CCC 的组中
?
如果没有与 BBB 匹配的列,如何跳过错误?