How to use groupsummary to group by hour-of-year
13 次查看(过去 30 天)
显示 更早的评论
The "groupsummary" function offers a convenient way to group variables in a table and apply functions such as computing the mean.
For example, if I want to compute the day-of-year mean of a variable named "foo" in a table "myTable" containing daily data with timestamp "date", I would use the command:
myDoyTable = groupsummary(myTable, "date","dayofyear","mean","foo");
This is great for daily data, but I am stumped in the case of hourly data.
Suppose I want to do a similar thing, but now myTable contains hourly data and date has an hourly timestamp.
Ideally I would want to use a command such as:
myDoyTable = groupsummary(myTable, "date","hourofyear","mean","foo");
Unfortunately, there is no "hourofyear" option (though there is hour of day, minute of hour, and many more).
Can anyone suggest a workaround?
Thanks,
-Dino
0 个评论
回答(2 个)
the cyclist
2023-6-30
The groupbin option "hour" doesn't do what you want?
(If not, can you upload a sample of input and output data indicating what you want? I'm having a difficult time understanding.)
Peter Perkins
2023-7-17
Is this really "hour of year", a value that runs from 0 to 8784? In the same way that day of year is just
dt = datetime(2023,7,17,14,15,0)
doy = between(dateshift(dt,"start","year"),dt,"days") % or maybe - caldays(1)
hour of year is just
hoy = between(dateshift(dt,"start","year"),dt,"time")
hoy = floor(time(hoy),"hours"); hoy.Format = 'h'
If you add an HoY grouping variable to your table, groupsummary can group by that.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!