How to create subsets?

조회 수: 1 (최근 30일)
Luca
Luca 2021년 4월 21일
답변: Harimurali 2023년 10월 17일
Hi,
I have a dataset of couple of thousend stocks, which is attached to this question. I calculated the market capitalisation of each stock for a year.
My goal know is to create 5 portfolios. Where every portfolio holds 20% of the stocks according to their size. The size is the market capitalisation. The portfolio should be recalculate every year. So the portfolio with the biggest 20 % of the stocks should incldude the biggest 20% for every year.
Unfortunatly I' dont know how to do it. I was thinking about the splitapply() function. But i did not find a function for this.
Data description:
ID is stands for the diffrent stocks
years are the oberved years (1962-2016)
sumMC is the market capitalization of each stock in every year
Does someone know how to do it?
Thanks in advance

답변 (1개)

Harimurali
Harimurali 2023년 10월 17일
Hi Luca,
I understand that you want to create five portfolios, where each portfolio holds 20% of the stocks according to their market capitalization. The portfolio should be recalculated every year, such that the portfolio with the biggest 20% of the stocks should include the biggest 20% for each year.
This can be achieved by following these steps:
  • Create a for loop where the loop index goes from start year to the end year.
  • For each loop, filter the table such that the table only contains rows corresponding to the loop index year.
Here is the sample MATLAB code for filtering the table inside the loop assuming the loop variable is “year”:
yearFilteredTable = subset2(subset2{:, 2} == year, :);
In this way, five portfolios can be created for a year, where each portfolio holds 20% of the stocks according to their market capitalization for that particular year.
I hope this helps.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by