Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Construcing correlation matrix from time-ordered list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg54748] Re: Construcing correlation matrix from time-ordered list
  • From: Peter Pein <petsie at arcor.de>
  • Date: Mon, 28 Feb 2005 03:28:38 -0500 (EST)
  • References: <cvrqlq$p65$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Adam Getchell wrote:
> Hello all,
> 
> I have time series data (a lot of it) in a format like:
> 
> {{{1897,1,4},40.37`},{{1897,1,5},40.87`},{{1897,1,6},40.95`},{{1897,1,7},
>     40.87`},{{1897,1,8},40.97`},{{1897,1,11},40.75`},{{1897,1,12},
>     41.4`},{{1897,1,13},41.45`},{{1897,1,14},41.79`},{{1897,1,15},
>     42.27`},{{1897,1,18},42.76`},{{1897,1,19},43.25`},{{1897,1,20},
>     42.78`},{{1897,1,21},42.52`},{{1897,1,22},42.42`}}
> 
> ie the year, then the value, for 100+ years.
> 
> I'd like to construct a correlation matrix so that year values become
> columns, e.g.
> 
> 1897      1898
> ==========
> Value1     Value 1
> Value 2     Value 2
> ...
> 
>  From my long list of {{{date1},value1},{{date2},value2}}
> 
> But I'm not yet sure how to proceed. I'm looking at Cases or Select to
> apply a function for each year range that will pick out that column.
> 
> Any pointers appreciated.
> 
> --Adam Getchell
> 
> 
In[1]:=
data={{{1897,1,4},40.37`},{{1897,1,5},40.87`},{{1897,1,6},40.95`},{{1897,1,7},
        40.87`},{{1897,1,8},40.97`},{{1897,1,11},40.75`},{{1897,1,12},
        41.4`},{{1897,1,13},41.45`},{{1897,1,14},41.79`},{{1897,1,15},
        42.27`},{{1897,1,18},42.76`},{{1897,1,19},43.25`},{{1897,1,20},
        42.78`},{{1897,1,21},42.52`},{{1897,1,22},42.42`}};

In[2]:= (* just to get two different columns *)
data=Join[data,data/.{{1897,x__},v_}\[Rule]{{2005,x},v+1.3}];

In[3]:= (* 1st split into sublists with same year *)
spl=Split[data, #1[[1,1]] === #2[[1,1]]&];
(* 2nd Print values as requested *)
TableForm[Transpose[Map[Last, spl, {2}]],
  TableHeadings -> {None, (#1[[1,1,1]] & ) /@ spl}]

[output left out because of too many formatting functions]

-- 
Peter Pein
Berlin


  • Prev by Date: Re: Simplify and Abs
  • Next by Date: Re: Re: Re: Simplify and Abs
  • Previous by thread: Re: Construcing correlation matrix from time-ordered list
  • Next by thread: Re: Construcing correlation matrix from time-ordered list