Filter löschen
Filter löschen

How to use fillmissing function within a group ?

7 Ansichten (letzte 30 Tage)
Namrata Goswami
Namrata Goswami am 11 Dez. 2020
Kommentiert: Namrata Goswami am 14 Dez. 2020
I have a table where multiple columns have NaN and I want the NaN to be replaced by the previous valid value in the column, within the group(by ID.
T =
ID amount1 amount2
15 200 300
15 NaN 800
15 NaN NaN
67 NaN 300
67 400 700
67 NaN NaN
Expected output:
ID amount1 amount2
15 200 300
15 200 800
15 200 800
67 NaN 300
67 400 700
67 400 700
I am able to achieve this partially using fillmissing function as:
Tupdated = fillmissing(T,'previous');
But I want to implement this within group (by ID). I am unable to use fillmissing with splitapply correctly.

Akzeptierte Antwort

dpb
dpb am 11 Dez. 2020
>> varfun(@(x) fillmissing(x,'previous'),T,'groupingvariables',{'ID'},'InputVariables',{'amount1','amount2'})
ans =
6×4 table
ID GroupCount Fun_amount1 Fun_amount2
__ __________ ___________ ___________
15 3 200 300
15 3 200 800
15 3 200 800
67 3 NaN 300
67 3 400 700
67 3 400 700
>>

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by