MATLAB Answers

0

How do I separate month, day of the week, and hour of the day for each row of a csv time series file so that I can do a factor analysis for month, day, hour?

Asked by Robert Henson on 19 Oct 2017
Latest activity Commented on by Peter Perkins
on 22 Oct 2017
Accepted Answer by KL
How do I separate month, day of the week, and hour of the day for each row of a csv time series file so that I can do a factor analysis for month, day, hour? I'm trying to determine the best time to enter/exit FX trades by day and hour of the day, but I'm not sure how to format the data file. Can you help me?

  1 Comment

Please don't make us guess at what your data looks like, when it is so easy to upload a sample. Make it easy for us to help you.

Sign in to comment.

1 Answer

Answer by KL
on 19 Oct 2017
Edited by KL
on 19 Oct 2017
 Accepted Answer

Use a timetable!
Import your csv file as table and then create a timetable from it .Then you can do whatever you want to do with it, like monthly mean, yearly sum, etc. For example,
data_table = readtable('yourfile.csv');
data_timetable = table2timetable(data_table);
and then you could use retime
hourly_mean_table = retime(data_timetable,'hourly','mean')

  2 Comments

In addition to using retime to compute per-period summaries, if you want to "do a factor analysis for month, day, hour", you may also want to add new variables in that timetable, something like
data_timetable.Month = month(data_timetable.Time)
data_timetable.DayOfWeek = day(data_timetable.Time,'dayofweek')
etc.

Sign in to comment.