Daily mean of a hourly dataset

7 vues (au cours des 30 derniers jours)
Murielle van Pampus
Murielle van Pampus le 6 Jan 2022
Commenté : Simon Chan le 6 Jan 2022
Hi,
To determine the annual daily maximum of a dataset, as attached by this question I have to convert my data. My data set is as follows:
[Year, Month, Day, Hour, info1, info2,info3,....] and is a txt-file.
To combine the different time info, I used the function datetime, as this would transfer the four columns into one Time-column. But as I try, the error "All input arguments must be tables" appears. Therefore, I was wondering what I'm doing wrong in my code.
Secondly, I would like to average my data over the days, so I get one data point for every day. As if I have the average of every day, I need to determine the yearly maximum, which I tried with the retime-function.
Can someone help me with what I am doing wrong?
clear; clc; close all;
filename = 'data_1991_2020_edited.txt';
delimiterIn = ' ';
headerlinesIn = 1;
Data = importdata(filename,delimiterIn,headerlinesIn);
%[A,delimiterOut]=importdata(filename)
Data1 = readtable(filename);
% Create datetime array
time_dep = datetime([Data1(:,1),Data1(:,2),Data1(:,3),Data1(:,4),zeros(size(Data1,1),1),zeros(size(Data1,1),1)]);
%TData = timetable(Times, Data1(:,6));
%YrMean = retime(TData, 'yearly', 'max'); % Yearly Maximum
%Max = [YrMean.Times.Year YrMean.Var1]

Réponse acceptée

Simon Chan
Simon Chan le 6 Jan 2022
Modifié(e) : Simon Chan le 6 Jan 2022
Try the following:
filename = 'data_2001_2010.txt';
Data1 = readtable(filename,'VariableNamingRule','preserve');
Data1(:,1)=[]; % Remove the 1st column
Data1.YYYYMMDD=datetime(string(Data1.YYYYMMDD),'InputFormat','yyyyMMdd'); % Convert to datetime format
Gmean=groupsummary(Data1,"YYYYMMDD",'day',"mean"); % Calculate daily mean
  10 commentaires
Murielle van Pampus
Murielle van Pampus le 6 Jan 2022
Would you also know how to remove duplicates if the max value occured multiple times in a year. So for example the value of FH of 180 ocured 5 times in december. Currently it gives 5 values of 180 for 2020. Is there a argument to remove duplicates?
Simon Chan
Simon Chan le 6 Jan 2022
You need to state the criteria to remove duplicates since the values on other columns are different.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by