Re: Date based calculations
- To: mathgroup at smc.vnet.net
- Subject: [mg119802] Re: Date based calculations
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 23 Jun 2011 07:24:49 -0400 (EDT)
- Reply-to: hanlonr at cox.net
selectByDate[data_List, startDate_String, endDate_String] := Module[{ sDate = DateList[startDate], eDate = DateList[endDate]}, Select[data, OrderedQ[{sDate, DateList[#[[1]]], eDate}] &]]; data = { {"03-May-11", -0.0400698, -0.00671613, -0.0333613}, {"04-May-11", 0, -0.00355872, -0.0169521}, {"05-May-11", 0.0453721, 0.0128572, -0.0248498}, {"06-May-11", 0.0052084, -0.00317346, 0.00290203}, {"09-May-11", -0.0155441, 0.0254686, 0.0597703}, {"10-May-11", 0.0315789, -0.0051742, -0.0179181}, {"11-May-11", -0.0323129, 0.00450769, -0.0346655}, {"12-May-11", 0, 0.0200207, -0.0200701}, {"13-May-11", -0.00702991, 0, 0.0400441}, {"16-May-11", 0, 0.00203048, -0.0121865}, {"19-May-11", 0.0318584, 0.00979397, 0.0229752}, {"20-May-11", 0.00343055, -0.00401342, 0.000611685}, {"23-May-11", -0.025641, 0.0020148, -0.0259388}, {"24-May-11", -0.00526314, 0.00435663, 0.00376576}, {"25-May-11", 0.0194003, 0.00133465, -0.0125949}, {"26-May-11", -0.0190311, 0.00533158, -0.00958927}, {"27-May-11", 0.0282187, -0.007955, 0.0026488}, {"30-May-11", -0.0291595, 0.00233883, -0.00291514}, {"31-May-11", 0.0212014, 0, -0.0383737}}; Mean[selectByDate[data, "09-May-11", "19-May-11"][[All, 2 ;; 4]]] {0.00122148, 0.00809246, 0.00542134} Covariance[selectByDate[data, "09-May-11", "19-May-11"][[All, 2 ;; 4]]] {{0.00055615, -0.0000770187, 4.88759*10^-6}, {-0.0000770187, 0.000123033, 0.000158345}, {4.88759*10^-6, 0.000158345, 0.00126204}} Bob Hanlon ---- Priyan Fernando <priyan.fernando at gmail.com> wrote: ============= I have the following time series data (19 rows by 4 columns): {{"03-May-11", -0.0400698, -0.00671613, -0.0333613}, {"04-May-11", 0, -0.00355872, -0.0169521}, {"05-May-11", 0.0453721, 0.0128572, -0.0248498}, {"06-May-11", 0.0052084, -0.00317346, 0.00290203}, {"09-May-11", -0.0155441, 0.0254686, 0.0597703}, {"10-May-11", 0.0315789, -0.0051742, -0.0179181}, {"11-May-11", -0.0323129, 0.00450769, -0.0346655}, {"12-May-11", 0, 0.0200207, -0.0200701}, {"13-May-11", -0.00702991, 0, 0.0400441}, {"16-May-11", 0, 0.00203048, -0.0121865}, {"19-May-11", 0.0318584, 0.00979397, 0.0229752}, {"20-May-11", 0.00343055, -0.00401342, 0.000611685}, {"23-May-11", -0.025641, 0.0020148, -0.0259388}, {"24-May-11", -0.00526314, 0.00435663, 0.00376576}, {"25-May-11", 0.0194003, 0.00133465, -0.0125949}, {"26-May-11", -0.0190311, 0.00533158, -0.00958927}, {"27-May-11", 0.0282187, -0.007955, 0.0026488}, {"30-May-11", -0.0291595, 0.00233883, -0.00291514}, {"31-May-11", 0.0212014, 0, -0.0383737}} The 1st Column is a date while Columns 2,3,4 represent the returns of stocks A,B and C respectively. Could you please help me extract information based on the date. E.g. date1 and date2 are variables inputted by the user. Example 1: Average returns of stocks A,B,C between 9-May-11 and 19-May-11 (dates inclusive) are: 0.001221494 0.008092462 0.005421325 Example 2: Variance/Covariance Matrix between of stocks A,B,C between 9-May-11 and 19-May-11 (dates inclusive) is 0.0004767002 -0.0000660161 0.0000041896 -0.0000660161 0.0001054570 0.0001357245 0.0000041896 0.0001357245 0.0010817457 This is easy to do in Excel, but I'm finding it hard to locate the correct functions in Mathematica. Any suggestions are much appreciated. Thank you.