如何使用列表选择具有特定值的行嗨,我正在尝试使用填充一列的名称列表来选择另一列(在另一个表中)的匹配行,以便对该表进行子集化并生成几个不同的子集。
从第一列获取名称/值没问题,但是我找不到循环的正确语法。
dt4 = Current Data Table();
uniqueVals = {"2021_file1_T1", "2021_file1_T2"};
tableList= {};
For(i=1, i< N Items(uniqueVals), i++,
dt4 << select where( As Column("Type") == [i] ) );
dt4 << Select Columns (all);
newdt[i] = dt4 << Subset( Selected columns );
Insert Into(tableList, Data Table(newdt[i]));
dt4 << Clear Column Selection();
dt4 << Clear Select();
);// end of For我认为我的基本逻辑还可以,因为这段代码运行得很好
dt4 << select where( As Column("Type") =="2021_file1_T2");
dt4 << Select Columns(all);
dt4 << Subset (Selected columns);但是我不知道如何将[i]传递给“选择位置”。随附的是简化的测试表。
我将不胜感激任何提示/解决方案/建议。
脚本编写回复:如何使用列表选择具有特定值的行您可以轻松完成所需的工作。以下是我对您的代码的修改。请注意,您要引用的newdt列表中的tableList列表是多余的。
dt4 = Current Data Table();
uniqueVals = {"2021_file1_T1", "2021_file1_T2"};
//tableList = {};
newdt = {};
For( i = 1, i <= N Items( uniqueVals ), i++,
dt4 << select where( As Column( "Type" ) == uniqueVals[i] );
dt4 << Select Columns( all );
newdt[i] = dt4 << Subset( Selected columns );
//Insert Into( tableList, Data Table( newdt[i] ) );
dt4 << Clear Column Selection();
dt4 << Clear Select();
);