How to make changes in the table
2 次查看(过去 30 天)
显示 更早的评论
Hi all,
I have a table reporting daily minimum tempreature(TMIN) and maximum tempretaure (TMAX) for year of 2017. How can I make changes to this table so that I can have daily average tempreature for each date. The table is attached for your further investigations.
2 个评论
Matt J
2023-1-11
You mena you have additional data that you want to insert? If not, where are the average values supposed to come from?
采纳的回答
the cyclist
2023-1-11
Probably the easiest way to do this is via the following data operations:
- "unstack" the max/min temperatures into their own columns
- Take the average
- "stack" the temperatures again (if you want)
Here is the code:
load("newyearTemp.mat","newyearTemperatureData")
unstackedTemperatureData = unstack(newyearTemperatureData,"value","datatype");
unstackedTemperatureData.TAVE = (unstackedTemperatureData.TMAX+unstackedTemperatureData.TMIN)/2;
restackedTemperatureData = stack(unstackedTemperatureData,["TMAX","TMIN","TAVE"],'NewDataVariableName','value','IndexVariableName','datatype');
I also feel obligated to mention that the daily average temperature is not typically the mean of the high and low. But guessing you know that. :-)
1 个评论
the cyclist
2023-1-11
Possibly helpful for you in the future is also to become familiar with what is known as the "tidy" data format, where the features (e.g. "station" or "max temperature") are the column, and the observations (e.g. "GHCND:USC00017674" and "68") are the rows.
The unstacking I did put your data into that format, which made it much easier to do the averaging operation on all the observations at once.
I suppose that one could argue that "datatype" is a feature, and "TMAX" is an observation. Sometimes it is tricky. But I like to spread the gospel of tidy data.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!