如何按条件快速筛选列名

如果有很多形如event_i_j的列名,如何快速把i>j的那些列select出来呢?例如:

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)
请先 登录 后评论

1 个回答

veryOrdinary

可以用元编程生成最后的 SQL 语句。筛选列时可以用 split 拆出 i, j 然后进行比较。

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()
请先 登录 后评论