表中有很多形如event_i_j的列名,要求查询出i>j的列

请教一下如果有很多形如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)

要求select event_5_1,event_6_3 from t

请先 登录 后评论

1 个回答

wale

可以用元编程的方式:

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