How to create a pivot table

46 vues (au cours des 30 derniers jours)
alpedhuez
alpedhuez le 29 Juin 2020
I have a table
date person spendings
----------------------------------------
1/1/2020 John $100
1/1/2020 Mike $50
1/2/2020 John $75
1/3/2020 Mike $40
I want to create a pivot table
John Spendings Mike Spendings
----------------------------------------------------------------------------------
January 2020
February 2020
March 2020
Please advise.

Réponse acceptée

Maadhav Akula
Maadhav Akula le 2 Juil 2020
I think the unstack function might help you out. I have written a small example using your data:
month = categorical({'Jan';'Jan';'Feb';'March'});
person = categorical({'John';'Mike';'John';'Mike'});
spendings = [100;50;75;40];
T = table(month,person,spendings)
u = unstack(T,'spendings','person')
I think you can customise it according to your needs.
Hope this helps!
  3 commentaires
Maadhav Akula
Maadhav Akula le 2 Juil 2020
You can utilize the month and datetime functions to tweak them to your required format.
a = month(datetime('1/1/2020','InputFormat','dd/MM/yyyy'),'shortname')
The above line returns the Month in 'Mmm' format, for instance January as 'Jan'. You can tweak some of these properties to obtain the required values which best suits your requirements.
alpedhuez
alpedhuez le 3 Juil 2020
Modifié(e) : alpedhuez le 3 Juil 2020
date=datetime(T2.yyyy_mm,'InputFormat','yyyy-MM');

Connectez-vous pour commenter.

Plus de réponses (1)

Lola Davidson
Lola Davidson le 17 Mar 2023
As of R2023a, you can use the "pivot" function: https://www.mathworks.com/help/matlab/ref/pivot.html
Tout = pivot(Tin, Rows="date", RowsBinMethod="month", Columns="person", DataVariable="spendings");

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by