Hi everyone, I want to know if there is a function which can get me a table with the first row that appears in grouped data. For example, I have this table:
key Date Height Weight
___ ____ ______ ______
4 56 34 12
21 45 123 23
21 40 67 133
45 49 64 119
45 45 12 12
The column date is already grouped in descending order.
I want to get a table with unique values for key but with the most recent date like this.
key Date Height Weight
___ ____ ______ ______
4 56 34 12
21 45 123 23
45 49 64 119
Please help

 Réponse acceptée

dpb
dpb le 28 Mar 2019
Modifié(e) : dpb le 28 Mar 2019
[~,ig]=findgroups(D.key);
[~,ig]=ismember(ig,D.key);
results in:
>> D(ig,:)
ans =
3×4 table
key Date Height Weight
___ ____ ______ ______
4 56 34 12
21 45 123 23
45 49 64 119
>>

3 commentaires

It works perfectly, Thanks!
How to get the last row per group in a similar situation ?
dpb
dpb le 14 Déc 2020
You could either sort by the column of interest descending or use find() with the reverse search instead of ismember with a loop construct.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by