Modified version of VLOOKUP for Matlab

1 次查看(过去 30 天)
So I have a table(A) containing:
  1. companies IDs (ID)
  2. An announcement date (AD) for each ID(an ID can have multiple dates)
  3. Price (PC).
The table is 15000 x 3
I have a second table(B) containing:
  1. companies IDs (ID)
  2. announcement dates(AD) for each ID(an ID can have multiple dates)
  3. and a couple of other variables irrelevant to this situation.
The table is 14990 x 3.
I am looking to add on Table(B), the prices of table(A) of each company ID and Announcement Date that match the ID and AD of table B.
Please look at attachment for example.
I would like a code to add to table B, a Price of 300 for the second row (ID=02).
Thank you for your help!

采纳的回答

Teja Muppirala
Teja Muppirala 2016-3-28
You can do this using OUTERJOIN .
A = table;
A.ID = [1;1;2];
A.AD = datetime({'2016/01/01'; '2015/02/02'; '2010/3/3'});
A.PC = [100;200;300];
B = table;
B.ID = [1;2];
B.AD = datetime({'2012/01/01'; '2010/3/3'});
B.Irrelevant = {'aaa'; 'bb'};
B_Price = outerjoin(A,B,'type','right','MergeKeys',true)
This gives you
B_Price =
ID AD PC Irrelevant
__ __________ ___ __________
1 2012/01/01 NaN 'aaa'
2 2010/03/03 300 'bb'
  1 个评论
Jules
Jules 2016-3-28
编辑:Jules 2016-3-28
This worked brilliantly! I had to slightly modify my code as i have 700 "irrelevant" variables Thank you!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calendar 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by