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

 Akzeptierte Antwort

dpb
dpb am 28 Mär. 2019
Bearbeitet: dpb am 28 Mär. 2019

2 Stimmen

[~,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 Kommentare

It works perfectly, Thanks!
How to get the last row per group in a similar situation ?
dpb
dpb am 14 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by