How to assign a mean of a variable to every year ?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I have Sea surface temperature per year but I have many values for the same year. How to calculate the mean of SST for every year?
Thank you.
This is the table:
0 comentarios
Respuestas (3)
KSSV
el 3 de Nov. de 2023
T = readtable(myfile) ;
[c,ia,ib] = unique(T.(1)) ; % gewt unique values of years
N = length(c) ;
iwant = zeros(N,2) ;
for i = 1:N
iwant(i,1) = c(i) ;
iwant(i,2) = mean(T.(3)(ib==i)) ;
end
Stephen23
el 3 de Nov. de 2023
Editada: Stephen23
el 3 de Nov. de 2023
The simple and efficient MATLAB approach:
DateYear = [2016;2016;2010;2008;2016;2016;2009;2008;2007;2010];
SeverityCode = [3;3;0;2;3;3;1;1;2;0];
SST = [26.33;26.77;29.05;28.61;26.71;25.37;27.1;27.95;28.62;-11];
T = table(DateYear,SeverityCode,SST)
G = groupsummary(T,'DateYear','mean','SST')
Note that if the value -11 represents invalid data then those lines will need to be modified e.g. removed from the table or -11 replaced with NaN:
T.SST(T.SST==-11) = NaN
G = groupsummary(T,'DateYear','mean','SST')
Image Analyst
el 5 de Nov. de 2023
Like @Stephen23 said, you can use groupsummary. Other options are splitapply and grpstats. Let us know if you can't figure it out.
0 comentarios
Ver también
Categorías
Más información sobre Smoothing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!