Filter löschen
Filter löschen

Join tables using all rows of a column and fulling with zeros when not found a value

1 Ansicht (letzte 30 Tage)
I have two tables, for example:
And I want to join the tables having all values of 'Ind' and 'Date' for each 'Code', fulling with zero when it doesn't find a value:
How can I do this?
Thank you!

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 27 Okt. 2017
Bearbeitet: Andrei Bobrov am 27 Okt. 2017
T1 = readtable('20171027.xls','Range','A2:B14');
T2 = readtable('20171027.xls','Range','A16:D31');
T1.Date = datetime(T1.Date);
T2.Date = datetime(T2.Date);
[g,v] = findgroups(T2.Code);
n = max(g);
T3 = repmat(T1,n,1);
T3.Code = v(kron((1:n)',ones(size(T1,1),1)));
T3 = T3(:,[3,1:2]);
[lo,ii] = ismember(T3,T2(:,1:3));
T3.Value = zeros(size(T3,1),1);
T3.Value(lo) = T2.Value(ii(lo));

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by