假设有“event_i_j”形式的列名(“i”和“j”代表数字),例如“event_1_5”和“event_5_1”。如何快速选择 i > j 的?
以下面脚本生成的表t为例:
t = table(1 2 3 4 as event_1_5, 1 3 4 5 as event_2_5, 1 2 3 4 as event_5_1, 1 2 3 4 as event_5_8, 1 2 3 4 as event_6_3)
如何从t中选择“event_5_1”和“event_6_3”?
您可以使用
split
函数将每个列名称拆分为“event”、“i”和“j”。比较“i”和“j”并选择 i > j 的。以下是使用元编程生成的 SQL 脚本示例:
t = table(1 2 3 4 as event_1_5, 1 3 4 5 as event_2_5, 1 2 3 4 as event_5_1, 1 2 3 4 as event_5_8, 1 2 3 4 as event_6_3)
colNames=t.columnNames()
s=split(colNames,"_")
cols=colNames[each(x->int(x[1])>int(x[2]), s)]
sql(select=sqlCol(cols), from=t).eval()