我想检查数据表中两个数字列中的值。现在我有列表中这两个数字列的名称。我使用 for 循环遍历这些选定的数字列名称的列表,然后我想根据阈值(例如 100)进行检查。然后我想创建一个新列并相应地放置标签 - 标签“A”或“B” - 具体取决于数据表中给定的列。
假设这两个是数字列:
数字列 1 = {100, 200, 250, 700}
数字列 2 = {200, 250, 500, 100}
门槛是100。
现在我想要实现的标记列伪代码如下:
labeled_col = (如果numeric_col > 100,则为 "A", "B");
因此标记的列现在将显示:
labeled_col_1 = {“B”, “A”, “A”, “A”};
labeled_col_2 = {“A”, “A”, “A”, “B”};
以下是一些示例代码:
concat_dt = datatable("concatenated");<BR />new_val_list = {"num_col1", "num_col2"};<BR />name_list = {"col1", "col2"};<BR />stop = nitems(new_val_list);
for (i = 1, i <=stop, i++,
col_name = name_list[i] || "_Label_A_B";
show(col_name);
concat_dt << New Column( col_name,
Character,
"Nominal",
Formula( If( Column(concat_dt, new_val_list[i]) > 200, "A", "B" ) )
)
);但是上述代码只显示空列,尽管它们是使用数据表中各自的列名创建的。