Filter löschen
Filter löschen

How to extract data from different strata?

3 Ansichten (letzte 30 Tage)
Rahul Verma
Rahul Verma am 7 Feb. 2023
Kommentiert: Rahul Verma am 27 Apr. 2023
I want to extract the data from the perticular strata, but the problem is i have to do it manually, and that is very time consuming. I want to create a code which can extract the data easily. I have attached the excel file of dataset for reference.
Ex: In the attached file, you see there are different data in the columns provided along with the strata number. Now, i have to read the in matlab for further process, like i want to separate the data of all the strata.
Say: Strata 1 has one row of data, but strata 3 has two rows of data. So, if i recall the data from strata 3, it will read the whole data of strata 3.

Akzeptierte Antwort

Sarvesh Kale
Sarvesh Kale am 7 Feb. 2023
Bearbeitet: Sarvesh Kale am 7 Feb. 2023
I understand that you want data grouped by same Strata number in your spreadsheet, here is my attempt
T = readtable('Dataset.xlsx',"ReadRowNames",1);
n = length(T.Strata)
for i=1:n
if isnan(T.Strata(i))
T.Strata(i) = T.Strata(i-1); % replace the NaN with previous Strata Values, maybe not the best method
end
end
T(T.Strata==3,1:end-1)
% the above line says select only those rows where Strata is 3 and all
% columns except the Strata which is represented by end-1
% you can replace T.Strata == 33 and it will give you all those which have
% Strata equal to 33
You can find more information on the readtable function in the following documentation
I hope the provided solution helps you ! please accept the answer if it does. Thank you
  3 Kommentare
Sarvesh Kale
Sarvesh Kale am 7 Feb. 2023
I do not have information on it Rahul Verma, you might head to wikipedia page on stratified sampling and see if that helps !
Rahul Verma
Rahul Verma am 27 Apr. 2023
Hellos sir,
I have one more question. I have to calculate one parameter whose formula is given below:
x= N1 * S1
Where N1 is the number of elements in respective strata and S is the stadard deviation of respective strata.
I have to create one loop, in which both the variables gets its values respectively.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Voss
Voss am 7 Feb. 2023
data = xlsread('Dataset.xlsx')
data = 67×9
0.3509 0.3546 0.2230 0.0912 0.8921 0.4104 0 0.5590 1.0000 0.6000 0.6950 0.4833 0.3298 0 0.2010 0.8526 0.6135 2.0000 0.4717 0.5284 0.3234 0.2842 0.8456 0.7677 1.0000 0.6040 3.0000 0.5321 0.4610 0.2007 0.2667 0.7735 0.8484 0.8034 0.7770 NaN 0.7962 0.7908 0.5725 0.5088 0.3012 0.3760 0.2555 0.4314 4.0000 0.6566 0.6525 0.5762 0.5228 0.3396 0.4718 0.2381 0.4391 NaN 0.5887 0.5248 0.6989 0.8105 0.7283 0.6395 0.3467 0.5277 5.0000 0.5132 0.4362 0.5130 0.6807 0.8232 0.4460 0.4993 0.7802 6.0000 0.5019 0.4823 0.4387 0.4737 0.9364 0.4497 0.5068 0.7189 NaN 0.7623 0.7340 0.5799 0.4561 0.2542 0.6603 0.4572 0.2838 7.0000
data(:,end) = fillmissing(data(:,end),'previous');
stratadata = splitapply(@(x){x},data(:,1:end-1),findgroups(data(:,end)))
stratadata = 38×1 cell array
{[ 0.3509 0.3546 0.2230 0.0912 0.8921 0.4104 0 0.5590]} {[ 0.6000 0.6950 0.4833 0.3298 0 0.2010 0.8526 0.6135]} {2×8 double } {2×8 double } {[0.5887 0.5248 0.6989 0.8105 0.7283 0.6395 0.3467 0.5277]} {2×8 double } {2×8 double } {[ 0.1887 0.2305 0.0967 0 0.3766 0.2877 0.5297 0.6916]} {[ 0.1170 0 0 0.0421 0.6762 0.5055 0.4171 0.9155]} {2×8 double } {2×8 double } {[ 0.7774 0.9326 0.8810 1 0.6023 0.5257 0.4885 0.6921]} {3×8 double } {2×8 double } {2×8 double } {[0.2679 0.3191 0.2082 0.2175 0.1297 0.3414 0.4634 0.5999]}
Now stratadata is a cell array with each cell containing one stratum of data. To access a particular stratum's data, use curly braces, e.g.:
stratadata{3} % data for 3rd stratum
ans = 2×8
0.4717 0.5284 0.3234 0.2842 0.8456 0.7677 1.0000 0.6040 0.5321 0.4610 0.2007 0.2667 0.7735 0.8484 0.8034 0.7770
stratadata{13} % data for 13th stratum
ans = 3×8
0.2717 0.3085 0.1859 0.4561 0.4884 0.4996 0.4701 0.7375 0.4264 0.3830 0.2342 0.2456 0.5006 0.4845 0.4984 0.7579 0.4302 0.4326 0.3532 0.2947 0.3437 0.4980 0.6221 0.7611
  2 Kommentare
Rahul Verma
Rahul Verma am 7 Feb. 2023
While running this, data(:,end) = fillmissing(data(:,end),'previous');
i face one prblem. Its showing " Undefined function or variable 'fillmissing'".
Rahul Verma
Rahul Verma am 7 Feb. 2023
I am using Matlab R2015a, which is older version. Thats why the written syntax may not be worked. But thanks, i will use your written syntax in the newer version.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by