Join tables using all rows of a column and fulling with zeros when not found a value
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Montserrat Vallcorba Martí
le 27 Oct 2017
Commenté : Montserrat Vallcorba Martí
le 27 Oct 2017
I have two tables, for example:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/168847/image.jpeg)
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/168849/image.jpeg)
How can I do this?
Thank you!
0 commentaires
Réponse acceptée
Andrei Bobrov
le 27 Oct 2017
Modifié(e) : Andrei Bobrov
le 27 Oct 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));
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur String Parsing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!