如何按主键列求出2个表的交集

如下所示有2张表,

attachments-2021-09-9uZym0qq613af786bc38b.png

attachments-2021-09-bkNcIKlB613af7937ed57.png


2张表都有datetime(日期)和ticker列,但数据条数不一致,有啥办法能使得他们数据对齐吗?我的目的是想把它们转成矩阵用each(cross,matrixA,matrixB)计算,这个函数的前置条件,就是两个矩阵必须大小一致,所以需要去掉一些行,求他们的交集。

请先 登录 后评论

1 个回答

wale

可以用ej函数实现,示例如下:

t1=cj(table(2021.09.01..2021.09.30 as date),table(`a`b`c as ticker))
t1[`close]=1..90 
t1[`open]=1..90 
t2=cj(table(2021.08.15..2021.09.13 as date),table(`d`b`c as ticker))
t2[`ret_1d]=1..90 
t2[`ret_2d]=1..90

t3=ej(t1,t2,`date`ticker)
t01=select date,ticker,close,open from t3
t02=select date,ticker,ret_1d,ret_2d from t3

 对2个表t1和t2按股票代码和日期ej得到t3,然后在t3中select得到t1和t2交集部分的数据t01和t02。

请先 登录 后评论
  • 1 关注
  • 0 收藏,1046 浏览
  • Alex 提出于 2021-09-10 14:19